PDA

Visualizza la versione completa : [BASH] Elencare tutte le directory ricorsivamente


GreyFox86
03-07-2006, 12:37
Avrei bisogno di una funzione ausiliaria in uno script che elenchi ricorsivamente tute e solo le directory presenti a partire da una certa cartella, ed avevo pensato ad uno script del genere, ma essendo ancora niubbo nella programmazione bash volevo avere le vostre opinioni/consigli a riguardo.


function ldir() {
pfiles=`ls -F $1 | sed -n -e '/^.*\/$/p'`
if [[ ! -e $pfiles ]]; then
for files in $pfiles; do
echo $files
ldir $1/$files
done
fi
}

Alla funzione si passa come primo parametro la directory dalla quale partire.

U-bahn
03-07-2006, 14:24
...ti fa così schifo find ? :D


find $dir -type d

GreyFox86
03-07-2006, 19:17
ops... non lo sapevo... si vede che non conosco find eh? :D

Caleb
03-07-2006, 19:47
e ancora più schifo tree -d? :D

GreyFox86
03-07-2006, 19:53
tree sul mio sistema non sembra essere presente

Caleb
03-07-2006, 20:07
comodissimo, te le visualizza pure ad albero

cosa usi?

GreyFox86
03-07-2006, 20:08
(edit)
Sono su gentoo. No infatti il pacchetto non è presente, dovrei installarlo. Grazie per la segnalazione ma preferisco mantenere l'uso di find in modo da avere maggior compatibilità dello script.

Loading