Wie kann ich unter ls
Linux eine Auflistung der Dateinamen nur für Datum und Größe erstellen? Ich muss die anderen Informationen wie Eigentümer oder Erlaubnis nicht sehen. Ist das möglich?
linux
command-line
files
ls
Pinkie
quelle
quelle
ls
ist großartig, weil es sehr schnell nach Datum und Uhrzeit sortiert, aber die Formatierung ist schwer zu handhaben. Ich schlage vor, ein Token im --time-Stil zu verwenden, etwa--time-style='+&%Y%m%d+%H%M%S.%N'
wenn das Token '&' ist. Wenn Sie dies als Referenz verwenden, können Sie die Ausgabe weiter analysieren,sed
damit Sie auch zurückverfolgen können, bevor das Token die Größe hat! Wenn jemand das als vollständige Antwort posten möchte, zögern Sie nicht, ich schlafe gerade :)Antworten:
Warum nicht
stat
statt verwendenls
?quelle
find . -type f -print0 | xargs -0 stat -c "%y %s %n"
stat
, können Sie hinzufügen Breite Informationen zu dem Formatstring wie C printf Funktion, zum Beispiel"%y %8s %n"
, es ist nicht dokumentiert, aber scheint Werke (coreutils 8.17, Fedora 18)ls
kann ich es mit tausend Trennzeichen ausgeben. Wie funktioniert dasstat
?ls
. Was ist mit Farben?Sie können mit dem
find
Dienstprogramm eine Menge Kontrolle darüber erhalten, wie Sie Dateien auflisten.ls
Sie können die gewünschten Spalten nicht wirklich angeben.Zum Beispiel:
Das Argument für die
printf
Aktion ist in der Manpage detailliert. Sie können verschiedene Zeitinformationen, die gewünschte Größe (Dateigröße oder verwendete Plattenblöcke) usw. auswählen. Sie können dies auch für ungewöhnliche Dateinamen sicher machen, wenn weitere Verarbeitung erforderlich ist.quelle
%C+
(Ausgabe "2016-08-29 + 10: 57: 56.9201257840") und%Cc
(Ausgabe "Mo 29 Aug 2016 10:57:56 CEST")Sie können jederzeit ein anderes Dienstprogramm verwenden,
awk
um die Ausgabe vonls
1 zu formatieren :1.Ja, im Allgemeinen sollten Sie die Ausgabe von ls nicht analysieren, aber in diesem Fall verlangt die Frage dies ausdrücklich ...
quelle
ls
Alias ist (sagen wiralias ls='ls -i'
). Sie sollten wirklich sehr vorsichtig sein, wenn Sie ls-Ausgaben analysieren möchten.ls
, aber/bin/ls
würde das Alias-Problemls
der wir uns beide einig sind, dass sie die Leerzeichen-Anforderung nicht erfüllen wird. Der/bin/ls
Vorschlag ist gut.-h
, um sie für den Menschen lesbar zu machen. Genauer gesagt verwendet I:ls -lah | awk '{print $5,$6,$7,$8}'
was ergibt:4.0K Jan 24 18:17
. Zugegeben, die ursprüngliche Lösung sagt nichts über awk aus, aber unter Linux sollten wir davon ausgehen, dass die Ausgabe eines Prozesses immer die Eingabe für einen anderen Prozess ist, oder? ;)Sie können auch den Befehl 'date' verwenden. Es ist sehr einfach zu bedienen:
quelle
date -r foo*.txt
->date: extra operand "foo2.txt"
Wenn Sie ls verwenden möchten, aber die richtige Größe beibehalten möchten, können Sie Folgendes verwenden:
quelle
wobei Leerzeichen als Trennzeichen definiert ist und f6 Feld 6 bedeutet
quelle
Sie können zwei Befehle weiterleiten
quelle
ls -s1 gibt die Dateigröße und den Namen nur unter AIX zurück, nicht sicher über Linux
quelle