Ottieni un elenco di tutti i file nella cartella e sottocartella in un file


28

Come posso ottenere un elenco di tutti i file in una cartella, inclusi tutti i file all'interno di tutte le sottocartelle e inserire l'output in un file?

Risposte:


39

Puoi farlo dalla riga di comando, usando l'opzione -R (ricorsiva) e quindi reindirizzando l'output a un file in questo modo:

ls -R > filename1

questo creerà un file chiamato nomefile1 nella directory corrente, contenente un elenco completo della directory corrente e tutte le sottodirectory sotto di essa.

Puoi elencare directory diverse da quella corrente specificando il percorso completo, ad esempio:

ls -R /var > filename2

elencherà tutto in / sotto / var e inserirà i risultati in un file nella directory corrente denominata nomefile2. Funziona su directory di proprietà di un altro utente, incluso root, purché tu abbia accesso in lettura per le directory.

Puoi anche elencare le directory a cui non hai accesso come / root usando il comando sudo. per esempio:

sudo ls -R /root > filename3

Elencherebbe tutto in / root, inserendo i risultati in un file chiamato nomefile3 nella directory corrente. Poiché la maggior parte dei sistemi Ubuntu non ha nulla in questa directory, il nomefile3 non conterrà nulla, ma funzionerebbe se lo facesse.


Forse dire alla persona di inserire prima il cd nella directory potrebbe essere aggiunto per rispondere. Anche questo funziona bene se possiedo la directory ma se provo in una directory dire di proprietà di root non ha fatto. Ho negato il solito permesso e sudo seguito dal tuo comando ha anche dato il permesso negato. Esiste un modo per aggirare senza accedere come root?
Damien,

Beh, ho detto directory "corrente". L'uso corretto del CD potrebbe essere oggetto di un'altra domanda, e sono sicuro che lo sia stato. Puoi elencare le directory di proprietà di root purché tu abbia accesso in lettura ad esse. Le directory di proprietà di root a cui l'utente ha accesso in lettura possono essere elencate con ls -R. È difficile immaginare perché si desideri elencare le directory di proprietà di root a cui non si ha accesso in lettura, ma sudo funziona davvero se si dà il percorso completo. Sto aggiungendo esempi per entrambi, ma escludendo l'uso del CD.
fabricator4,

8

albero Installa l'albero

Un'alternativa al ricorsivo lsè lo strumento da riga di comando treeche offre molte opzioni per personalizzare il formato dell'output visualizzato. Vedi la manpage per l'albero per tutte le opzioni.


7

Basta usare il findcomando con il nome della directory. Ad esempio, per visualizzare i file e tutti i file all'interno delle cartelle nella directory principale, utilizzare

find ~

Controllare la manpage di ricerca manuale per il findcomandoIcona Manpage

Controlla anche la pagina Trova informazioni GNU usando il info findcomando in un terminale.


Questo è l'approccio più potente. findha molti parametri per personalizzare il formato di output e la selezione dei file.
pauljohn32,

Questo è l'approccio migliore secondo me. Semplice e pratico. Potrebbe anche fare $ find . > outputse ci sono molte directory.
Felippe,

4

Anche:

gvfs-tree /path/to/folder/

ti darà lo stesso albero usando altri caratteri per le linee.

tree -a

per visualizzare anche i file nascosti

tree -i

per non visualizzare le righe


1
  1. Vai alla cartella da cui desideri ottenere un elenco di contenuti.
  2. Seleziona i file che desideri nell'elenco ( Ctrl+ Ase vuoi l'intera cartella).
  3. Copia il contenuto con Ctrl+ C.
  4. Apri gedit e incolla il contenuto usando Ctrl+ V. Verrà incollato come elenco e sarà quindi possibile salvare il file.

Questo metodo non includerà la sottocartella, tuttavia il contenuto.


1

Puoi anche usare la controparte della GUI per il treesuggerimento di Takkat che è Baobab . Viene utilizzato per visualizzare cartelle e sottocartelle, spesso allo scopo di analizzare l'utilizzo del disco. È possibile che sia già installato se si utilizza un desktop GNOME (spesso viene chiamato analizzatore dell'utilizzo del disco).

sudo apt-get install baobab

È possibile selezionare una cartella e anche visualizzare tutte le sue sottocartelle, ottenendo anche le dimensioni delle cartelle e il loro contenuto, come mostrato nella schermata seguente. Basta fare clic sulla piccola freccia giù per visualizzare una sottocartella all'interno di una cartella. È molto utile per ottenere una rapida panoramica di ciò che hai nelle tue cartelle e può produrre elenchi visualizzabili, ma al momento non può esportarli in file. È stato richiesto come funzionalità, tuttavia, su Launchpad . Puoi anche usarlo per visualizzare il filesystem di root se lo usi gksudo baobab.

(Puoi anche ottenere un elenco di file con le loro dimensioni usando ls -shR ~/myfoldere quindi esportandolo in un file.)

Inserisci qui la descrizione dell'immagine


L'OP voleva i risultati in un file, presumibilmente per fare qualcos'altro con esso. Sebbene Baobab sia un buon strumento, non sembra soddisfare i requisiti della domanda originale del PO.
fabricator4,

@ fabricator4 Ho anche aggiunto l'opzione ls, poiché al momento baobab non può produrre un elenco.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.