[Risolto] Lista file hard disk esterno

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! :clap:

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 :slight_smile:

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