Ich möchte nur Dateien nach Aktualisierungsdatum einschließlich Unterverzeichnissen sortieren.
Ich habe es herausgefunden ls -lrtR | grep ^-
. Es scheint jedoch nicht nach Aktualisierungsdaten zu sortieren.
Und ich muss diese Liste in eine Datei speichern. Ist es möglich?
Apr 01 2010 InsideDoosanServiceImpl.class // in A directory
Apr 08 2010 MainController.class // in B directory
Apr 07 2010 RecommendController.class // in B directory
Apr 01 2010 MainDao.class // in B directory
Ich meine, die ganze Liste ist nicht nach Datum sortiert, sondern zuerst nach Ordner und dann nach Datum.
Ich möchte eine Liste, sortiert nach Datum, mit allen Unterverzeichnissen.
ls -lrt
.xargs
, um mehrere Aufrufe zu erzwingenls
, da dann die Dateien nur innerhalb jedesls
Aufrufs ordnungsgemäß sortiert werden, aber keine kohärente globale Reihenfolge in der Ausgabe vorhanden ist.Mit ls rekursiviert -R Verzeichnisse und -t sortiert nach Änderungen. Es durchläuft jedoch Verzeichnisse rekursiv und wendet -t auf jedes Verzeichnis an. Es werden nicht alle Dateien aus allen Verzeichnissen gesammelt und dann sortiert. (Soweit ich weiß, ist letzteres das, was Sie wollen)
Mit gnu find (1) können Sie das Ausgabeformat so festlegen, dass es die Anzahl der Sekunden seit der Epoche und den Dateinamen enthält. Anschließend können Sie dies an sort (1) weiterleiten.
quelle
GNU find
hilft. Aber OP arbeitet anAIX
Maschinen undGNU find
stand ihm nicht zur Verfügung.ls
dass vor dem Sortieren keine Dateien angesammelt werden können.ls
ist so schnell im Vergleich zufind
.ls
undfind
liest die gleichen Daten, also kann ich mir keinen Grund vorstellen, warum ich wesentlich schneller sein sollte als zu finden. Auf meinem System ist die Suche 5-mal schneller (Durchsuchen von ungefähr einer halben Million Dateien)find . -type f -printf "%T@ %Tc %p\n" | sort -n > out.txt
Geben Sie Ausgabeeinträge wie z1427913836.2330520210 wed 1 apr 2015 20:43:56 ./subdir/file.txt
.