Wie kann ich die Ausgabe von ls einschränken, damit nur Dateiname, Datum und Größe angezeigt werden?
25
Wie kann ich unter lsLinux eine Auflistung der Dateinamen nur für Datum und Größe erhalten? Ich muss die anderen Informationen wie Eigentümer, Erlaubnis nicht sehen.
Dadurch wird die Dateigröße in Byte, Monat, Datum und Dateiname gedruckt.
jin@encrypt /tmp/foo % ls -l
total 0
drwxr-xr-x 2 jin wheel 68 Oct 4 12:43 bar
drwxr-xr-x 2 jin wheel 68 Oct 4 12:43 baz
drwxr-xr-x 2 jin wheel 68 Oct 4 12:43 quux
jin@encrypt /tmp/foo % ls -l | awk '{print $5, $6, $7, $9}'
68 Oct 4 bar
68 Oct 4 baz
68 Oct 4 quux
@ Sosukudo Ja, ich bin mir auch nicht sicher. Aber die Leute scheinen sich einig zu sein, dass es in Ordnung ist, schlechte Fragen abzustimmen, aber nicht die Antworten, wenn sie nützlich sind. meta.stackexchange.com/questions/98197/…
Jin
@ Sosukodo: zögern Sie nicht, jetzt zu stimmen :)
sehe
6
Keine Unterstützung für Dateinamen mit mehreren Leerzeichen
meso_2600
12
Technisch ist es mit nicht möglich ls, findkann aber die gleiche Arbeit mit seinem -printfSchalter erledigen :
Ihr Vorschlag ist mein Gewinner, und ich würde empfehlen, wenn die Leute an mehr Feldern für den Druck interessiert sind, sie RTFM. Zeigen Sie mir zum Beispiel die Berechtigungen für alle Dateien, die kein Verzeichnis sind: find usr/lib/ -not -type d -printf '%M %p\n Ausgabe: -rw-r--r-- usr/lib/x86_64-linux-gnu/apr-util-1/apr_crypto_openssl-1.so... Bringen Sie einem Mann das Fischen bei und all das ...
Craig
Die Frage ist in Bezug auf Linux also keine unvernünftige Antwort, aber für die Aufzeichnung erfordert dies GNU find.
Dan Pritts
5
Sie können immer tun:
$ ls -l
total 0
-rw-r--r-- 1 user staff 0 Oct 6 23:29 file1
-rw-r--r-- 1 user staff 0 Oct 6 23:29 file2
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file3
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file4
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file5
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file6
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file7
cut es zu:
$ ls -l | cut -f 8-13 -d ' '
0 Oct 6 23:29 file1
0 Oct 6 23:29 file2
0 Oct 6 23:30 file3
0 Oct 6 23:30 file4
0 Oct 6 23:30 file5
0 Oct 6 23:30 file6
0 Oct 6 23:30 file7
$
funktioniert nicht mit: Variablenbesitz, Gruppen, Dateigrößen
meso_2600
Beim Ausschneiden werden aufeinanderfolgende Trennzeichen nicht ausgeblendet, wenn ls -lLeerzeichen verwendet werden. Wenn Ihre Spalten nicht einheitlich lang sind (welche Spalte 5, Dateigröße oft nicht), werden durch Ausschneiden die Spalten nicht richtig ausgewählt. Das Reduzieren aufeinanderfolgender Leerzeichen hilft (achten Sie auf Leerzeichen in Dateinamen). ls -l | tr -s ' ' | cut -f 8-13 -d ' '
Erläuterung: %y= lesbares Änderungsdatum;
%s= Größe in Bytes ( %12srechtsbündig, Länge 12);
%n= Dateiname ( %-16nlinksbündig, Länge 16); \t= Tabulator, \n= Zeilenvorschub. |= Literales Pipe-Zeichen, nur um das Ende des Dateinamens anzuzeigen.
Wie ls, stathat keine Optionen auswählen , welche Dateien anzeigen. (Dies kann zum Beispiel durch Shell-Globbing wie oben gezeigt oder durch einige erfolgen find ... -print0 | xargs -r0 stat ....)
Die Frage betraf Linux, daher ist Ihre Antwort in Ordnung, aber für alle, die sich darum kümmern, ist hier eine Entsprechung für FreeBSD stat. stat -f '%N %Sm %z' filename
Antworten:
ls -l | awk '{print $5, $6, $7, $9}'
Dadurch wird die Dateigröße in Byte, Monat, Datum und Dateiname gedruckt.
quelle
Technisch ist es mit nicht möglich
ls
,find
kann aber die gleiche Arbeit mit seinem-printf
Schalter erledigen :quelle
find usr/lib/ -not -type d -printf '%M %p\n
Ausgabe:-rw-r--r-- usr/lib/x86_64-linux-gnu/apr-util-1/apr_crypto_openssl-1.so
... Bringen Sie einem Mann das Fischen bei und all das ...Sie können immer tun:
cut
es zu:quelle
ls -l
Leerzeichen verwendet werden. Wenn Ihre Spalten nicht einheitlich lang sind (welche Spalte 5, Dateigröße oft nicht), werden durch Ausschneiden die Spalten nicht richtig ausgewählt. Das Reduzieren aufeinanderfolgender Leerzeichen hilft (achten Sie auf Leerzeichen in Dateinamen).ls -l | tr -s ' ' | cut -f 8-13 -d ' '
Ein weiteres Non-
ls
Way:Erläuterung:
%y
= lesbares Änderungsdatum;%s
= Größe in Bytes (%12s
rechtsbündig, Länge 12);%n
= Dateiname (%-16n
linksbündig, Länge 16);\t
= Tabulator,\n
= Zeilenvorschub.|
= Literales Pipe-Zeichen, nur um das Ende des Dateinamens anzuzeigen.Wie
ls
,stat
hat keine Optionen auswählen , welche Dateien anzeigen. (Dies kann zum Beispiel durch Shell-Globbing wie oben gezeigt oder durch einige erfolgenfind ... -print0 | xargs -r0 stat ...
.)quelle
stat -f '%N %Sm %z' filename
Leichte Variation von Tolitius
quelle