A função a seguir listará todos os arquivos de um diretório ( /
por padrão) em ordem de profundidade sem usar ls
:
lsr(){
for f in "$1/"* "$1/".[!.]* "$1/"..?*; do
test -e "$f" && echo "$f"
test -d "$f" && lsr "$f"
done
}
Exemplo:
$ lsr .
./dir
./dir/file
./dir/.dotfile
./.foo
./..bar
$ find . -depth
./dir/.dotfile
./dir/file
./dir
./.foo
./..bar
.
Pode ser feito em um script separado, em vez de em uma função:
#! /bin/sh
for f in "$1/"* "$1/".[!.]* "$1/"..?*; do
test -e "$f" && echo "$f"
test -d "$f" && "$0" "$f"
done