Antworten:
Eine Methode wäre, die Ausgabe von zu analysieren ls
.
$ ls -lah | awk '{print $9, $5}' | tail -5
.yEd 4.0K
.youtube-dl 4.0K
.zenmap 4.0K
.zshrc 32
zzzz 3.3K
Übrigens können Sie die Ausgabe mit bereinigen column
.
$ ls -lah | awk '{print $9, $5}' | column -t | tail -5
z 4
.youtube-dl 4.0K
.zenmap 4.0K
.zshrc 32
zzzz 3.3K
Wenn Sie lieber die anderen Spalten entfernen möchten, während Sie andere beibehalten, können Sie diese awk
Methode verwenden, um die unerwünschten Spalten auszublenden.
$ ls -lah | awk '{$1=$2=$3=$4=$6=$7=$8=""}1' | tail -5
4.0K .youtube-dl
4 z -> zzzz
4.0K .zenmap
32 .zshrc
3.3K zzzz
Das OP hat diese Befehlskette anhand einer Mischung der obigen Beispiele entwickelt.
$ ls -lah | awk '{print $5, $9$10$11}' | column -t | column
...
4.0K .gphoto 773 .rdebug_hist 4.0K .youtube-dl
1.5K .grip 4.0K .rdesktop 4 z->zzzz
column
ls -lahQ
stattdessen Dateinamen zitieren
Von der Manpage:
-s, --size print the allocated size of each file, in blocks
Also für vom Menschen lesbare Größen:
ls -sh
ls -ash
Eine schnelle und schmutzige Möglichkeit besteht darin, die Ausgabe von ls -lah
mit ein paar anderen Befehlen zu kombinieren :
ls -lah | tr -s ' ' | cut -d' ' -f5,9-
Der tr -s
Befehl ersetzt mehrere Leerzeichen durch einzelne Leerzeichen und cut -d' ' -f5,9-
druckt die Spalten 5 und 9 (und darüber hinaus). Dies 9-
ist erforderlich, um zusätzliche durch Leerzeichen getrennte Spalten zu berücksichtigen, die durch Symlinks erzeugt werden.
ls -lah | tr -s ' ' | cut -d' ' -f5,9- | column -t | column
Das Beste, was Sie nur erreichen können, ls
ist, die Benutzer- und Gruppenspalten mit zu unterdrücken ls -log
. Wenn Sie weiter gehen möchten, können Sie die Ausgabe analysieren. Beachten Sie, dass die zweite Spalte (die Anzahl der Links) eine variable Breite hat. Das folgende Shell-Snippet achtet darauf, die Spaltenausrichtung beizubehalten, mit beliebigen Dateinamen umzugehen (mit Ausnahme von Zeilenumbrüchen, wenn diese wörtlich übergeben werden) und die Ausgabe in Farbe anzuzeigen (entfernen Sie diesen Teil, wenn Sie keine GNU-Coreutils ausführen).
if [ -t 1 ]; then color=yes; else color=no; fi
ls -h -log --color="$color" | sed 's/^[^ ][^ ]* *[^ ][^ ]* \( *[^ ][^ ]*\) ............/\1/'
column
der richtige Weg.
ls -halog --color=no | sed 's/^[^ ][^ ]* *[^ ][^ ]* \( *[^ ][^ ]*\) ............/\1/'|column
awk
ist leichter zu merken
ls -lah | awk '{print $5, $9$10$11}'|column
bekomme ich was ich wollte