find
Hat eine gute Unterstützung für die Suche nach Dateien, die vor weniger als X Tagen geändert wurden. Wie kann ich find
jedoch alle Dateien finden, die nach einem bestimmten Datum geändert wurden?
Ich kann nichts in der find
Manpage finden, um dies zu tun, nur um die Zeit mit einer anderen Datei zu vergleichen oder um Unterschiede zwischen der erstellten Zeit und der aktuellen Zeit festzustellen . Ist es die einzige Möglichkeit, eine Datei mit der gewünschten Zeit zu erstellen und mit dieser zu vergleichen?
Antworten:
Wenn Sie nur '-newer file' haben, können Sie diese Problemumgehung anwenden:
Männerberührung:
Vorausgesetzt, Ihre Berührung hat diese Option (meine ist Berührung 5.97).
quelle
Nein, Sie können eine Datums- / Uhrzeitzeichenfolge verwenden.
Von
man find
:Beispiel:
quelle
Nicht direkt mit der Frage verbunden, aber für einige, die hier stolpern, interessant.
Der Befehl find unterstützt den Parameter -older nicht direkt zum Suchen von Dateien, die älter als ein erforderliches Datum sind. Sie können jedoch die Anweisung negate verwenden (unter Verwendung eines akzeptierten Antwortbeispiels):
gibt Dateien zurück, die älter als das angegebene Datum sind.
quelle
Dieser Befehl find findet Dateien, die in den letzten 20 Tagen geändert wurden.
Sie können zusätzliche Einschränkungen hinzufügen, wie zum Beispiel:
Das gleiche wie zuvor, findet jedoch nur Dateien, die mit '.txt' enden.
quelle
Nur zum Hinzufügen - Sie können sogar zwei neue Argumente verwenden, um in einem Zeitintervall zu suchen:
um alle Dateien von März 2007 zu finden.
quelle
Sie könnten ein Skript wie dieses verwenden
Speichern Sie es in Ihrem $ PATH als "newerthan" und machen Sie es ausführbar.
Dann können Sie eine Datei finden, die nach einem bestimmten Datum wie folgt geändert wurde:
oder
oder
Das sollte machen was du willst. Ich denke nicht, dass es einen eingebauten Weg gibt, um dies anders zu erreichen.
quelle
bc
für ganzzahlige Berechnungen zu verwenden. Bash kann dies:((seconds = when - now))
Das Argument formatdate
sollte ein Pluszeichen haben,date +%s
und einige Systeme haben es möglicherweise nicht.date -d
so was:
Dadurch erhalten Sie Dateien, die älter als der 01.01.2015 sind, in Ihrem aktuellen Verzeichnis.
https://muzaffarmahmoodblog.wordpress.com/2019/07/11/linux-command-to-remove-files-older-than-2015-in-a-directory/
quelle
Wenn Ihr Datum so formatiert ist, dass es zum Vergleich in Ordnung ist,
quelle