So finden Sie Dateien, auf die vor wenigen Minuten zugegriffen wurde


75

Ich vergesse immer, welche Datei ich vor einer Minute bearbeitet habe, also habe ich find . -cmin 1einen anderen Wert eingegeben , aber es hat genau 1Minuten funktioniert . Ich musste es versuchen find . -ctime 2 /*or 3,4...*/.

Dann finde ich einen anderen Ansatz, der besser ist:

touch -t 12251134 empty /*similar format which 5 or 10 minutes ago */
find . -newer empty

Ich kann date -d'-5minutes' +%m%d%H%Mdie Zeit für mich berechnen. Ich möchte wissen, ob es eine einfache Möglichkeit gibt, Dateien zu finden, auf die vor 1, 2 oder 3 ... Minuten zugegriffen wurde.


1
Warum nicht "Geschichte" verwenden? Mit den Pfeiltasten können Sie also nach früheren Befehlen suchen, die Sie verwendet haben.
Ikarus3

1
Ich benutze ls -Ahl -crt | tail -5. So oft, dass ich einen Alias ​​dafür gemacht habe. mcmit modifizierter Sortierung wäre das noch besser.
Potrzebie

Antworten:


126

Geben Sie einfach an, ob die Zeit größer, kleiner oder gleich der gewünschten Zeit sein soll.

find . -cmin +<time>
find . -cmin -<time>
find . -cmin  <time>

In Ihrem Fall sind die Dateien mit der letzten Ausgabe in maximal 5 Minuten beispielsweise wie folgt angegeben:

find . -cmin -5

2
Ich frage mich, warum sie diese hilfreiche Verwendung nicht in die Manpage aufgenommen haben
Yuan

9
Ja, es ist dort, direkt in der Manpage suchen, suchen Sie einfach nach: Numerische Argumente können angegeben werden als: + n, für größer als n; -n für weniger als n; n, für genau n. Die Kinder, die diese Unix-Programme geschrieben haben, haben Wunder getan (:
Rubens

1
Eh, kiiiinda. Das bisschen darüber, wie Sie es verwenden können +und -ist, zumindest auf meinem System, eine Ebene höher in der Hierarchie: unter der Überschrift "Primär". Ich war überrascht, dass es nur genau übereinstimmte, also suchte ich nach einem anderen. Nun, "primär", das würde helfen. Schließlich kam der gute alte SO zur Rettung :)
Ari Gold

1
Nur eine Anmerkung, dass, wenn Sie mtime wollen, es auch die mmin-Option gibt
Johan Boulé

17

Wenn Sie GNU finden, können Sie auch sagen

find . -newermt '1 minute ago'

Durch die tOptionen wird die Referenz "Datei" newerzu einer Referenzdatumszeichenfolge der Art, die Sie an GNU übergeben können date -d, das komplexe Datumsspezifikationen wie die oben angegebene versteht.


Für diesen einfachen Fall -mminwürde es funktionieren, aber Sie können auch sagen -newermt 'yesterday'oder -newermt '+ 2 weeks'oder sogar -newermt '2PM last Sunday'. Die Berechnung dieser Dinge von Hand könnte durchgeführt werden, aber es ist viel einfacher, findes herauszufinden.
Sorpigal

12

Um Dateien zu finden, auf die vor 1, 2 oder 3 Minuten zugegriffen wurde, verwenden Sie -3

find . -cmin -3

4

Wenn Sie wissen, dass sich die Datei in Ihrem aktuellen Verzeichnis befindet, würde ich Folgendes verwenden:

ls -lt | head

Hier werden Ihre zuletzt geänderten Dateien und Verzeichnisse der Reihe nach aufgelistet. Tatsächlich benutze ich es so oft, dass ich es auf "lh" aliasiert habe.


Was ist, wenn mehr als 10 Dateien vorhanden sind, Sie die Nummer jedoch nicht kennen? Dann funktioniert der Kopf nicht
Stunner

1
headfunktioniert immer noch für diesen Zweck, 10 Zeilen sind nur die Standardeinstellung. Sie können beliebig viele angeben. Erste fünf Zeilen? head -5. Erste zwanzig Zeilen? head -20. Gleiches mittail
Carles Alcolea
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.