Elenca solo le directory in modo ricorsivo in Linux?

Is List Only Directories Recursively Linux



La parola ricorsivo si riferisce al fatto che i comandi di un sistema operativo Linux o Unix si occupano del contenuto delle cartelle e se una cartella ha sottocartelle e documenti, l'istruzione funziona ancora con tutti quei documenti (in modo ricorsivo). Potrebbe essere possibile che la directory figlio abbia il proprio set di file e cartelle (ad esempio, cartelle di grandi dimensioni), e così via. Utilizzerai diverse istruzioni Linux per attraversare in modo ricorsivo ogni cartella prima di arrivare al bordo della cartella specificata. A quel livello, le istruzioni di Linux tornano a un bivio dell'albero e ripetono il processo per tutte le sottocartelle esistenti. In questo tutorial imparerai tutti i metodi per elencare le directory in modo ricorsivo.

Esempi di directory di elenchi semplici

Prima di tutto, devi sapere come elencare tutte le directory dal tuo sistema Linux usando il semplice comando list. Apri il terminale della riga di comando e prova il comando ls seguente per elencare solo le directory. Non solo elencherà le directory, ma il numero totale di sottocartelle e file che risiedono in esse. L'output mostra le cartelle con le informazioni relative al proprietario, al gruppo, ai privilegi di lettura-scrittura e alla data di creazione delle cartelle.







$ ls -l



Per elencare tutte le directory e i file all'interno del tuo sistema Linux, devi usare -la invece del semplice -l nel comando list. Quindi, esegui il comando aggiornato per farlo. L'output mostra tutti i file e le cartelle insieme alle loro informazioni aggiuntive.



$ ls -la





Per elencare semplicemente le directory senza ulteriori informazioni, prova il comando seguente seguito dal flag -d.

$ ls –d * /



Puoi anche usare lo stesso comando con poche modifiche per elencare le cartelle insieme alle loro informazioni aggiuntive. Devi solo aggiungere il flag -l all'interno di questo comando come segue:

$ ls –l –d * /

Per controllare solo il numero totale di file nella directory home specifica, prova il comando presentato di seguito nella shell. Otterrai il numero totale di file nel tuo sistema operativo Linux.

$ ls –l | egrep –v ‘^ d’

Esempio di elenco di directory in modo ricorsivo

Ci sono diversi tipi di comandi ricorsivi disponibili nei sistemi Linux, che possono essere usati per elencare le directory in modo ricorsivo. Per comprenderli separatamente, supponi di avere 5 file nella directory Linux denominati Documenti.

Elenca ricorsivamente utilizzando il flag -lR

Usare il flag -lR nella tua query per elencare in modo ricorsivo tutte le directory del tuo sistema Linux è il primo metodo per farlo. All'esecuzione del comando list di seguito, elencherà tutte le cartelle e le loro sottocartelle insieme ai loro dettagli bonus, come mostrato nell'output.

$ ls -lR

Elenchiamo ricorsivamente tutti i file o le cartelle da una cartella o directory specifica del tuo sistema Linux. A questo scopo, aggiungi il percorso della posizione della directory specifica per elencarla in modo ricorsivo. Vogliamo elencare in modo ricorsivo tutti i file e le cartelle della directory Documents che risiedono nella home directory utilizzando il comando di seguito aggiornato. L'output mostra tutti i file e le cartelle all'interno della cartella Documenti insieme alle sue informazioni aggiuntive.

$ ls –lR / home / aqsayasin / Documenti /

Elenca ricorsivamente usando il comando Trova

Metti in chiaro che non tutti i sistemi Linux, ad esempio macOS, sistemi operativi simili a Unix, possono scegliere di usare -R per elencare le directory. In tal caso, ci sono altri comandi disponibili per soddisfare le nostre esigenze che sono il comando trova e stampa. In questo comando, forniremo un percorso a una cartella insieme alla leva dell'utilizzo del comando -ls. Quando -ls viene utilizzato nel comando, ciò significa che mostrerà anche le informazioni aggiuntive relative ai file e alle cartelle residenti di una directory specifica. Prova il comando indicato di seguito nella shell per elencare in modo ricorsivo tutti i file e le cartelle della directory Documenti.

$ find /home/aqsayasin/Documents/ -print -ls

Ora, devi provare la stessa istruzione nella shell con un piccolo cambiamento. Eviteremo di utilizzare il flag -ls in questo comando per interrompere la visualizzazione delle informazioni aggiuntive relative ai file. Esegui la query sotto elencata nella shell e avrai l'output visualizzato.

$ find /home/aqsayasin/Documents/ -print

Elenca ricorsivamente usando il comando -du

Diamo un'occhiata a un altro esempio per elencare in modo ricorsivo i file o le directory con un altro nuovo metodo. Questa volta useremo il comando -du per raggiungere il nostro scopo. Questo comando contiene il flag -a al suo interno. Insieme ai flag, dobbiamo specificare anche la posizione della directory. Eseguiamo le istruzioni seguenti nella shell del terminale per elencare in modo ricorsivo tutte le cartelle o i file della directory Documenti. L'output mostra i 5 record per esso, come mostrato di seguito. Puoi vedere che questo comando mostra anche il numero di morsi che risiedono in ogni file.

$ du –a / home / aqsayasin / Documenti /

Elenca ricorsivamente usando il comando ad albero

Ultimo ma non meno importante, abbiamo un metodo di comando ad albero molto semplice e facile da usare per elencare in modo ricorsivo i file o le cartelle. Finora non useremo alcun flag in questo comando. Devi specificare la posizione della directory insieme all'albero delle parole chiave. Facciamone un esempio usando il comando elencato di seguito. L'output mostra l'output di tipo ramificato ad albero della directory Documenti. Mostra 0 directory e 5 file nell'output.

$ albero /home/aqsayasin/Documenti/

Proviamo lo stesso comando ad albero con una posizione diversa. Questa volta stiamo elencando in modo ricorsivo le cartelle della directory 'Home' dell'utente aqsayasin. L'output mostra i rami della cartella Home con un totale di 14 diverse cartelle, sottocartelle e 5 file.

$ albero /home/aqsayasin/

Conclusione

Abbiamo provato tutti i metodi ricorsivi per elencare in modo ricorsivo le directory e i file, ad esempio -lR flag, find and print, du e tree comando