Pour une utilisation interactive rapide sur des arborescences de répertoires qui ne sont pas trop énormes, shopt -s globstar
c'est vraiment sympa. Un glob ne peut pas filtrer les répertoires en fonction du type, mais si vous l'utilisez avec ls -d
alors il ls
affichera simplement le nom du répertoire, au lieu du contenu.
En supposant que votre ll
alias comprend -lh
:
# with shopt -s globstar in your .bashrc
ll -rSd **/*
vous donnera une sortie comme celle-ci (à partir de mon répertoire code-golf), mais avec des couleurs en surbrillance (il est donc plus facile de voir les répertoires). Notez que le tri par taille de fichier s'est produit dans les sous-répertoires.
drwxr-xr-x 1 peter peter 70 Jun 8 07:56 casexchg
...
drwxr-xr-x 1 peter peter 342 Mar 13 18:47 parity-party
-rw-r--r-- 1 peter peter 387 Jul 29 2017 likely.cpp
-rw-r--r-- 1 peter peter 416 Aug 31 2017 true-binary.asm~
-rw-r--r-- 1 peter peter 447 Feb 23 20:14 weight-of-zero.asm
...
-rw-r--r-- 1 peter peter 6.4K Jun 1 2017 string-exponential.asm
-rwxr-xr-x 1 peter peter 6.7K Aug 31 2017 true-binary
-rwxr-xr-x 1 peter peter 6.8K Sep 17 2017 dizzy-integer
-rw-r--r-- 1 peter peter 7.5K Jul 24 2017 fibonacci/fibonacci-1G.v3-working-32b-stack-except-output.asm
-rw-r--r-- 1 peter peter 8.4K Jul 25 2017 fibonacci/perf.32bit-pop-114limb.sub-cmc.1G~
-rw-r--r-- 1 peter peter 8.4K Jul 25 2017 fibonacci/perf.32bit-pop-114limb.sub-cmc.1G
-rwxr-xr-x 1 peter peter 8.4K May 19 04:29 a.out
-rw-r--r-- 1 peter peter 8.9K Jul 25 2017 fibonacci/perf.python-xnor-2n
-rw-r--r-- 1 peter peter 9.5K Jul 26 2017 fibonacci/fibonacci-1G-performance.asm
-rwxr-xr-x 1 peter peter 9.6K Apr 12 23:25 empty-args
-rw-r--r-- 1 peter peter 9.7K Dec 18 17:00 bubblesort.asm
-rwxr-xr-x 1 peter peter 9.9K Feb 6 23:34 parity-party/a.out
-rw-r--r-- 1 peter peter 9.9K Jul 25 2017 fibonacci/fibonacci-1G-performance.asm~
...
Vous pouvez filtrer les répertoires en passant par grep -v '^d'
Vous pouvez parfois utiliser un glob qui correspond uniquement aux fichiers et non aux répertoires, si vos noms de fichiers ont un modèle. par exemple ll -rSd **/*.jpg
, ou même **/*.*
fonctionne si aucun de vos noms de répertoire ne .
s'y trouve, et tous les fichiers que vous voulez faire .
(Pour les personnes ayant un arrière-plan DOS: il n'y a rien de magique *.*
sur Unix. Il correspond à n'importe quelle entrée de répertoire qui contient un point littéral. Mais à part les exécutables et parfois les fichiers texte, il est courant de donner des extensions aux noms de fichiers.)
@dessert souligne que vous en auriez besoin shopt -s dotglob
pour correspondre à tous les fichiers.
Avec GNU find
S'il n'y a pas trop de fichiers pour tenir sur une seule ls
ligne de commande, find -exec ls {} +
les mettre tous sur la ligne de commande où les ls
trier.
find -not -type d -exec ls --color -lrSh {} +
Utiliser -not -type d
au lieu d' -type f
éviter d'ignorer les liens symboliques, les canaux nommés, les sockets, les fichiers de périphérique et tout ce que vous avez dans vos répertoires.
Avec du
:
du -ach | sort -h
....
4.0K x86-modedetect-polyglot.o
8.0K ascii-compress-base.asm
8.0K dizzy-integer
8.0K stopwatch-rdtsc.asm
8.0K string-exponential.asm
8.0K true-binary
12K a.out
12K bubblesort.asm
12K casexchg
12K empty-args
100K parity-party
220K fibonacci
628K total
Désormais, les noms de répertoires sont triés dans la liste avec la somme totale de tout leur contenu, mais les fichiers individuels sont toujours inclus.
sort -h
, aka --human-numeric-sort
, trie les nombres avec des suffixes de taille comme les du -h
impressions. Il est parfait pour une utilisation avec du
.
J'utilise souvent du -sch * | sort -h
, ou */
pour obtenir uniquement des répertoires.
du -sch **/* | sort -h
vous donnerait la sortie ci-dessus, si vous oubliez que cela du
a une -a
option.
(J'ai seulement pris le temps de le chercher parce que je poste une réponse. Pour une utilisation interactive, je l'aurais probablement utilisé du -sch **/*
.