Autore Topic: Script per trovare i file duplicati  (Letto 1427 volte)

Offline laerte

  • *
  • Post: 149
  • Reputazione: 10
    • Mostra profilo
Script per trovare i file duplicati
« il: 03 Giugno 2012 ore 22:21 »
Scopo: Trovare i file duplicati nel hard disk
Come: Usando uno script
Prerequisiti: Shell Bash
Vantaggi: Possibilità di liberare spazio su disco eliminando i file duplicati trovati
Svantaggi: N.D.
Tempo necessario: 2-3 minuti + tempo impiegato dal pc per eseguire lo script
Fonte:http://paper0k.wordpress.com/2007/07/04/come-ti-trovo-i-files-duplicati


Ci tengo a precisare che questo script non è stato scritto da me, ma l'ho trovato nel blog scritto sopra (in "Fonte")

Siccome ora mi era tornato utile voglio condividerlo con voi, può sempre servire!
Rispetto allo script del sito è stato cambiato solo un parametro [tempfile con mktemp] perché qui su Chakra non funzionava...

Il procedimento è semplice, lanciare lo script passandoli come parametro la cartella, e lui cercherà i file uguali calcolando l'MD5!
Non verrà modificato niente, ma verranno elencati i file doppioni! Semplice semplice  ;D

Copiare questo script in un file con estensione .sh che creerete voi, con Kate o altri editor di testi (ad esempio, un nome può essere duplicati.sh)
Codice: [Seleziona]
#! /bin/bash

LSTFILE=$(mktemp)
WRKFILE=$(mktemp)
DUPFILE=$(mktemp)

if [ -z "${#}" ]
then
        D="."
else
        D="${1}"
fi

echo "Ricerca in corso su ${D} ..."
find "$D" -type f -exec md5sum \{} \; > $LSTFILE 2>/dev/null

echo "Analisi files..."
while read SUM FILE
do
        #echo "Analisi $FILE in corso... [${SUM}]"
        if grep "^${SUM} " $WRKFILE >/dev/null 2>&1
        then
                DUPLICATO=$(grep "^${SUM} " $WRKFILE | cut -d " " -f 2-)
                TIPO=$(file "${FILE}"|cut -d ":" -f 2-)
                echo "Errore $FILE uguale a $DUPLICATO (${TIPO} )"
                echo "${FILE} ${DUPLICATO} ${SUM} (${TIPO} )" >> $DUPFILE
        else
                echo "${SUM} \"${FILE}\"" >> $WRKFILE
        fi
done < $LSTFILE

rm -f $LSTFILE $WRKFILE 2>/dev/null
if [ -s $DUPFILE ]
then
        echo "File con i duplicati: $DUPFILE"
else
        rm -f $DUPFILE
fi
echo "Terminato."

Quindi, rendere eseguibile tale script. Da dolphin, click destro del mouse sul file--->proprietà--->permessi e spuntare la voce relativa all'eseguibilità

Da terminale, invece, basta dare
Codice: [Seleziona]
chmod +x nome_script.sh
Per eseguire lo script, lanciare da terminale il comando
Codice: [Seleziona]
./nome_script.sh /percorso/della/directory/da/eseminare
Ad esempio

Codice: [Seleziona]
./duplicati.sh /media/dati/Documenti
Guida aggiornata a Febbraio 2013 -Pesantemente modificata da Andreazube

« Ultima modifica: 23 Febbraio 2013 ore 14:12 da andreazube »
Fanne e sacci fare. . .

"Alla fine cosa significa vivere? una pianta è più viva di un computer senziente perché è basata di carbonio invece che sul silicio?"

Offline Hombremaledicto

  • *
  • Post: 520
  • Reputazione: 40
  • Ma chi ti si incula
    • Mostra profilo
    • Hombre on DA
Re:[Guida] Script per trovare i file duplicati
« Risposta #1 il: 03 Giugno 2012 ore 22:31 »
Grazie...Grazie  :o

Ora lo provo!
Keep it rolling, baby...

 

Template by Homey | Sito ufficiale | Disclaimer