Wie erhält man die Zeitinformationen der Dateien nach dem Schlüsselwortbefehl „find | grep“?

Wie erhält man die Zeitinformationen der Dateien nach dem Schlüsselwortbefehl „find | grep“?

Jetzt weiß ich, wie ich das Schlüsselwort „find | grep“ verwende, um die gewünschte Datei zu erhalten.

Aber woher soll ich danach die Größe und die Erstellungszeitinformationen für jede gefundene Datei wissen?

Beispielsweise erhielt ich nach dem find | grep-Tutorial Folgendes:

./lab/zengjuchen/tutorial
./lab/zengjuchen/tutorial/tutorial

Wie kann ich mir die Erstellungszeit und -größe anzeigen lassen?

Antwort1

Sie haben mit der gemeinsamen Verwendung von findund einen Fehler gemacht . ist perfekt geeignet, um Dateien zu filtern. Sie brauchen es nicht – tatsächlich ist es nicht empfehlenswert, Dateinamen auf diese Weise umzuordnen.grepfindgrep

Gehen Sie stattdessen folgendermaßen vor:

find -name '*tutorial*' -exec <some-command> {} \;

Hier <some-command>wird für jede gefundene Datei ausgeführt, deren Name ersetzt {}. Um beispielsweise die Dateigröße zu ermitteln:

find -name '*tutorial*' -exec du {} \;

Die Verwendung \+von anstelle von \;führt findden Befehl für alle Dateien gleichzeitig aus, wenn der angegebene Befehl die Übergabe von mehr als einem Dateiargument unterstützt. Dadurch wird der Vorgang beschleunigt.


Oder Sie können es einfach mit Bash machen:

shopt -s globstar
du **/*tutorial*

Dabei **werden rekursiv alle Verzeichnisse durchlaufen.


Was die Erstellungszeit betrifft: Traditionell wird diese nicht gespeichert. Sie erhalten nur den Zeitpunkt des letzten Zugriffs, der Änderung und der Statusänderung. Weitere Informationen finden Sie unterstat. Dateisysteme wie ext4speichern die Erstellungszeit als „Geburtszeit“. stat -c %wWürde also für diese funktionieren. Lesen Sie mehr zu diesem ProblemHier.

verwandte Informationen