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 lsjamais 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 . sourcesle |pipecomme un script shell - il est le même processus et ne pas les problèmes que vous pouvez rencontrer lors execveest 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 .svnfichiers est donc aussi simple que de changer la lsligne en:
ls -t --color=always --hide="*svn" "%p"\n
Ou si vous voulez voir des svnextensions dans chaque dossier MAIS ./svnvous 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 -set, si vous le souhaitez, -utriera par temps d'accès plutôt que par heure de mod.