find $DIR -depth -maxdepth 3 \
-type d -readable -printf \
'printf "\\n%p\\n"
ls -t --color=always "%p"\n' |\
. /dev/stdin 2>&-
Cela évite tous les problèmes de liste d'arguments car le seul argument ls
jamais reçu est le nom du répertoire que vous souhaitez répertorier. Vous pouvez le faire avec tout ce que vous aimez.
La coquille juste . sources
le |pipe
comme un script shell - il est le même processus et ne pas les problèmes que vous pouvez rencontrer lors execve
est appelé.
Dans tous les cas - ce qui précède ne va que de trois profondeurs qui est réglable en changeant maxdepth
. Il est également profond en premier - afin que vous reveniez à votre répertoire actuel à partir de depth
.
Vous remarquerez peut-être que vous obtenez également $LSCOLORS
- sur ma machine, il fournit également des colonnes soigneusement imprimées et tout ce que vous souhaitez ls
- ou, d'ailleurs, tout ce que vous pouvez imaginer que vous voudriez faire avec. source.
AUCUN SVN
Encore une fois, cela fera tout ce que vous attendez de ls
. Cacher des .svn
fichiers est donc aussi simple que de changer la ls
ligne en:
ls -t --color=always --hide="*svn" "%p"\n
Ou si vous voulez voir des svn
extensions dans chaque dossier MAIS ./svn
vous pouvez le changer pour que la commande entière ressemble à ceci:
find $DIR -depth -maxdepth 3 \
-type d -readable -printf \
'printf "\\n%p\\n" ; hide=
[ "%p" = "./svn" ] && hide="*svn"
ls -t --color=always --hide="$hide" "%p"\n' |\
. /dev/stdin 2>&-
Personnellement, je l'aime avec ls -s
et, si vous le souhaitez, -u
triera par temps d'accès plutôt que par heure de mod.