Ich verwende den Befehl „Find“, um Dateien aufzulisten, deren Namen eine Zeichenfolge enthalten:
find ~/ -type f -name "*inductive*"
Ich möchte eine Pipe verwenden, um die resultierende Dateiliste zu sortieren. Ich möchte nach Dateigröße, Erstellungsdatum, Zugriffsdatum usw. sortieren können. Wie kann ich das tun? Danke.
Antwort1
Das Sortieren der Ausgabe nach Erstellungszeit ist unter Linux nicht möglich ( ctime
ist nicht das Erstellungsdatum der Datei). stat
hat die Möglichkeit, dieGeburtszeitmit den Format-Tags %w
und %W
, aber sie zeigen immer -
bzw. 0
an, sogar auf Dateisystemen, die Erstellungszeit/Geburtszeit speichern. Daher ist es für diesen Zweck unter Linux praktisch nutzlos.
Die anderen beiden Sortierreihenfolgen sind jedoch möglich:
# Sort by size:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 5 -n
# Sort by access time:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 6 -M
Sie können die -r
Markierung hinzufügen, um sort
die Sortierreihenfolge umzukehren. man sort
Weitere Informationen finden Sie unter.
Abhängig von der Größe der find
Ausgabe kann es einige Zeit dauern, bis sort
eine sortierte Ausgabe erstellt wird.