Come elencare ricorsivamente tutti i file e le directory nascosti?


13

Voglio elencare tutti i file e le directory nascosti e quindi salvare i risultati su file.

C'è qualche comando per questo?

Risposte:


13

Se usi GNU find, puoi farlo

find /path -path '*/.*' -ls | tee output-file

modificare

Per evitare di mostrare elementi non nascosti contenuti nelle directory nascoste

find /path -name '.*' >output-file

(come notato, teepotrebbe essere evitato se non è necessario vedere l'output e l' -lsopzione dovrebbe essere utilizzata solo se necessario).


2
Oppure con >invece di | tee, se non si desidera vedere l'intero output sul terminale.
rozcietrzewiacz,

Inoltre, non è necessario -lssu questo, che potrebbe essere un'ulteriore informazione disordinata per analizzare il pensiero.
Caleb,

Questo elenca anche il contenuto delle directory nascoste, che non è quello che la domanda pone (probabilmente - è un po 'ambiguo).
Gilles 'SO- smetti di essere malvagio' il

@Gilles: anzi è ambiguo. Modificata la risposta
enzotib,

Nota che il primo non è specifico per GNU. -pathè POSIX dal 2008. -lsNon è standard ma abbastanza comune.
Stéphane Chazelas,

10

Per elencare i file e le directory nascosti nella directory corrente, inclusi .e ..:

echo .*

Per elencare ricorsivamente i file e le directory nascosti nella directory corrente e nelle sue sottodirectory:

find . -name '.*'

Se si desidera salvare i risultati in un file, utilizzare un reindirizzamento:

find . -name '.*' >output-file.txt

1

Con zsh(utilizzando il qualificatore glob D ):

print -rl ./**/.*(D)

Per includere file non nascosti nelle directory nascoste:

setopt extendedglob
print -rl ./**/*~^*/.*(D)

0

Puoi effettivamente inserire lo stesso argomento più volte nella stessa riga di comando:

find /storage/????-????/ -iname '.*' -iname "*" | tee -a file-list-micSD-20190801163729.fli

Il tee -acomando è in grado di visualizzare contemporaneamente l'output del comando (o stdout ) mentre lo scrive su un file. Le -aopzioni impediscono il clobbering e aggiungono invece le informazioni al file di output di destinazione.

/storage/????-????/è un percorso di esempio. È il percorso verso la scheda MicroSD dei più recenti telefoni cellulari Android (esiste anche un'applicazione terminale per Android, con meno comandi ma ancora molti e notevolmente aumentata da Android 6.0). La scheda MicroSD era precedentemente /storage/extSdCard. Ora è il numero seriale del volume.

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.