Für eine schnelle interaktive Verwendung in Verzeichnisbäumen, die nicht zu groß sind, shopt -s globstar
ist das wirklich nett. Ein Glob kann keine Verzeichnisse herauszufiltern auf Typ basiert, aber wenn Sie es verwenden , um mit ls -d
dann ls
wird nur die Verzeichnisnamen drucken, statt die Inhalte.
Angenommen, Ihr ll
Alias umfasst -lh
:
# with shopt -s globstar in your .bashrc
ll -rSd **/*
Sie erhalten eine Ausgabe wie diese (aus meinem Code-Golf-Verzeichnis), jedoch mit farblicher Hervorhebung (damit die Verzeichnisse leichter zu sehen sind). Beachten Sie, dass die Sortierung nach Dateigröße über Unterverzeichnisse hinweg erfolgte.
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~
...
Sie können die Verzeichnisse durch Durchleiten herausfiltern grep -v '^d'
Sie können manchmal einen Glob verwenden, der nur mit Dateien und nicht mit Verzeichnissen übereinstimmt, wenn Ihre Dateinamen ein Muster haben. zB ll -rSd **/*.jpg
oder **/*.*
funktioniert sogar, wenn keiner Ihrer Verzeichnisnamen .
und alle gewünschten Dateien enthalten sind .
(Für Leute mit DOS-Hintergrund: Unter *.*
Unix ist nichts Magisches . Es stimmt nur mit jedem Verzeichniseintrag überein, der einen Literalpunkt enthält. Abgesehen von ausführbaren Dateien und manchmal Textdateien ist es jedoch üblich, Dateinamen mit Erweiterungen zu versehen.)
@dessert weist darauf hin, dass Sie es benötigen würden shopt -s dotglob
, um mit allen Dateien übereinzustimmen .
Mit GNU find
Wenn nicht zu viele Dateien in eine ls
Befehlszeile passen , find -exec ls {} +
werden sie alle in der Befehlszeile abgelegt, wo ls
sie sortiert werden können.
find -not -type d -exec ls --color -lrSh {} +
Durch Verwenden von -not -type d
anstatt zu -type f
vermeiden, dass Symlinks, Named Pipes, Sockets, Gerätedateien und alles, was Sie sonst noch in Ihren Verzeichnissen herumtrampeln, ignoriert werden.
Mit 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
Jetzt werden Verzeichnisnamen in der Liste sortiert, um die Summe aller Inhalte zu erhalten, aber einzelne Dateien sind weiterhin enthalten.
sort -h
, aka --human-numeric-sort
, sortiert Zahlen mit Größensuffixen wie du -h
Drucke. Es ist perfekt für die Verwendung mit du
.
Ich benutze oft du -sch * | sort -h
oder */
nur Verzeichnisse zu bekommen.
du -sch **/* | sort -h
würde Ihnen die obige Ausgabe geben, wenn Sie vergessen, dass du
eine -a
Option hat.
(Ich habe mir nur die Zeit genommen, um nachzuschlagen, weil ich eine Antwort poste. Für die interaktive Verwendung hätte ich sie wahrscheinlich nur verwendet du -sch **/*
.