Come ottenere l’elenco dei file di una cartella e di tutte le sue sottocartelle?
Argomenti: Tips & tricksTerminaleUtility
Author: Marco Balestra
Un simile elenco può essere generato sia utilizzando programmi in GUI (interfaccia grafica) che in CLUI (riga di comando, nel Terminale).
Interfaccia Grafica
Scaricare BBEdit (commerciale, ma può essere usato gratuitamente a funzioni ridotte).
Lanciare il programma, e trascinare sulla finestra di un documento di testo la cartella di cui si desidera ottenere l’indice.
L’indice viene creato con tanto di indentazioni a tab per i livelli di nidificatione.
Riga di comando
Lanciare il Terminale, spostarsi nella directory interessata e scegliere uno dei seguenti comandi:
Solo le cartelle:
$ find . -type d | sed -e 1d -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|-/'
Sia le cartelle che i file:
$ find . | sed -e 1d -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|-/'
Il risultato sarà una cosa del tipo:
$ cd ~/Movies $ find . -type d | sed -e 1d -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|-/' |--dvd |----docwho28 |--Follie |--Sigle cartoni |--Spot |----apple ads |----birrasvizzera |----out |--Yo-Yo
Se ilcomando viene utilizzato spesso può essere conveniente crearne un alias.
Per bash ad esempio potremo definire un alias in ~/.bash_profile
(o ~/.bash_rc
su OS X più vecchi) con la seguente sintassi:
alias elenco="find . | sed -e 1d -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|-/'"