Wie sortiert man die Ausgabe von find?

Wie sortiert man die Ausgabe von find?

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 ( ctimeist nicht das Erstellungsdatum der Datei). stathat die Möglichkeit, dieGeburtszeitmit den Format-Tags %wund %W, aber sie zeigen immer -bzw. 0an, 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 -rMarkierung hinzufügen, um sortdie Sortierreihenfolge umzukehren. man sortWeitere Informationen finden Sie unter.

Abhängig von der Größe der findAusgabe kann es einige Zeit dauern, bis sorteine sortierte Ausgabe erstellt wird.

verwandte Informationen