Salve
vorrei creare un file al cui interno c’è l’elenco di tutti file presenti in un hard disk esterno,
qualcuno può aiutarmi grazie
Deve mantenere il path nella lista o vuoi ordinarlo anche in altro modo? Con find ti puoi comunque sbizzarrire a volontà.
ad esempio così:
$ find /punto/di/montaggio name=*
Ci provo anch’io,
$ tree disco_esterno > /home/jurij/Documenti/lista_disco_esterno.txt
se poi la devi stampare non so quante pagine possano venir fuori.
Quasi dimenticavo, non dovrebbero comparire i file nascosti.
Sì, se non vuoi altri ordini basta un tree probabilmente, e come dice andreamal non ti mette i file nascosti.
Se invece usi find hai tutto, anche i file nascosti:
$ find /punto/di/montaggio -name '*' > output.txt
Dipende da cosa vuoi ottenere esattamente.
Ho scritto
$ /run/media/jurij/Iomega > /home/jurij/Documenti/lista_disco_esterno.txt
ma mi dice
/run/media/jurij/Iomega: File o directory non esistente
Spostati nel disco USB da terminale e dai:
$ find -name '*' > output.txt
Avrai il file nel tuo disco USB, altrimenti specifica dove lo vuoi salvare.
scusami
come si fa
$ cd /run/media/jurij/Iomega
$ find -name '*' > output.txt
ora nel disco trovi il file output.txt che contiene tutto l’elenco.
[quote=virus]$ cd /run/media/jurij/Iomega
$ find -name '*' > output.txt
ora nel disco trovi il file output.txt che contiene tutto l’elenco.[/quote]
Siccome jurij ha detto che
[quote=jurij]vorrei creare un file al cui interno c’è l’elenco di tutti file presenti in un hard disk esterno[/quote],
potrebbe anche fare
$ cd /run/media/jurij/Iomega
$ find --type f > output.txt
Se, invece, vuole anche le cartelle e io ho interpretato troppo alla lettera, ritiro quello che ho appena detto…
Marco ha commesso un piccolo errore di battitura:
find -type f > output.txt
Hai ragione, non me ne ero accorto!
Grazie.
de nada
grazie mille
funziona!
Non so per cosa ti serva la lista dei files, ma se ti interessa allego uno script che ho fatto qualche anno fa che, oltre all’elenco dei files ti dà lo sha1sum degli stessi: se riesegui lo script tra qualche tempo, puoi capire non solo se sono presenti files in più o in meno, ma anche se quelli ancora presenti sono cambiati (lo avevo fatto perché in quel periodo avevo un computer “quantistico”, che in modo random mi cambiava qualche bit quando copiavo e incollavo i files). Io l’ho salvato in ~/bin, l’ho chiamato sha1sumdir e l’ho reso eseguibile.
Se, invece, non ti è utile, lo considero un omaggio all’ottimo Virus, visto che ho qualcosa da farmi perdonare… :rolleyes:
#!/bin/bash
#controllo esistenza due parametri
if "$1" == "" ] || "$2" == "" ]; then
echo "Uso: $0 nome_dir_per_sha1sum nome_file_output"
exit 1
fi
#DIR è il primo parametro
DIR=$1
#sostituisco eventuali // con /
while "${DIR//\/\//\/}" != "$DIR" ]
do
DIR=${DIR//\/\//\/}
done
#rimuovo inizio se path relativo
if "$DIR" == "." ]; then
DIR=""
elif "${DIR:0:2}" == "./" ]; then
DIR=${DIR:2}
fi
#rendo path assoluto
if "${DIR:0:1}" != "/" ]; then
DIR="`pwd`/$DIR"
fi
#aggiungo / finale, se necessario
if "${DIR:${#DIR}-1:1}" != "/" ]; then
DIR="$DIR/"
fi
#controllo l'esistenza della cartella $DIR
if ! -d "$DIR" ]; then
echo "$DIR non esiste o non è una cartella"
exit 1
fi
if `expr index "$2" /` != "0" ]; then
echo "$2 deve essere il nome del file, non può contenere il carattere /"
exit 1
fi
#il secondo parametro è il nome del file
OUTPUT="$DIR$2"
#se il file esiste già, esco in errore (non vorrei cancellare per sbaglio dati importanti...)
if -e "$OUTPUT" ]; then
echo "Il file $OUTPUT esiste"
exit 1
fi
echo "sha1sum files contenuti in $DIR"
echo "#$DIR" >"$OUTPUT"
#cerca files in $DIR, ordina e attribuisce a FILE, uno alla volta, i nomi
find "$DIR" -type f -size +0b -name "*" | sort | while read FILE
do
#se è una nuova cartella, scrive il percorso
if "$FILE" != "$OUTPUT" ]; then
DIR2=`dirname "$FILE"`
if "$DIR" != "$DIR2" ]; then
echo "$DIR2"
DIR="$DIR2";
fi
#inserisce sha1sum di $FILE nel file di output
sha1sum "$FILE" >>"$OUTPUT"
#se sha1sum esce in errore, qualcosa è andato storto; esce in errore
if "$?" != "0" ]; then
echo "Errore nell'esecuzione di sha1sum $FILE" >>"$OUTPUT"
exit 1
fi
fi
done
Molto bello, sembra interessante
Quoto e rilancio, aggiungendo, opzionalmente, un parametro (il nome di un file di output precedente) e un “diff” alla fine, si potrebbe anche fare il controllo delle differenze direttamente dallo script