"find -mtime 0" nicht immer die Datei, die ich erwarten
Ich bin auf der Suche nach einer Datei, die 0 Tage alt. Unten sind die Schritte, die ich durchgeführt, um zu testen diese
$ ls
$ ls -ltr
total 0
$ touch tmp.txt
$ ls -ltr
total 0
-rw-r----- 1 tstUser tstUser 0 Feb 28 20:02 tmp.txt
$ find * -mtime 0
$
$ find * -mtime -1
tmp.txt
$
Warum ist '-mtime 0' nicht immer mir die Datei?
Was ist der genaue Unterschied zwischen '-mtime 0' und '-mtime -1'?
Bin ich sicher, dass es auch andere Wege, um Dateien zu finden sind 0 Tage alt in unix, aber ich bin neugierig zu verstehen, wie diese '-mtime' tatsächlich funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, -mtime 0 wäre gleich: "Datei zuletzt geändert wurde 0 Stunden.
Während -mtime 1 wäre: "Datei zuletzt geändert wurde 24 Stunden"
Edit:
Also ich denke, -1 würde geändert werden, die innerhalb der letzten 24 Stunden, während 1 wäre genau einen Tag.
Dies ist eine nicht benutzerfreundliche Aspekt
find
- Sie haben zu verstehen, wie das matching funktioniert tatsächlich korrekt zu definieren, die Ihren Suchkriterien entsprechen. Die folgende Erklärung basiert auf GNU-find (findutils) 4.4.2.find
tests-atime
,-ctime
,-mtime
Arbeit auf 24-Stunden-Perioden, also definieren wir "Alter" alsDrei Dateien geändert vor 1 Stunde, 25 Stunden und 49 Stunden
Datei Altersgruppen (wie oben definiert) sind
Angesichts der oben genannten, hier ist, was finden tut
Dies zeigt, dass
-mtime 0
und-mtime -1
äquivalente Ergebnisse.-mmin
gibt den gleichen test mit feiner Granularität - argument ist Minuten anstelle von 24 Stunden Perioden.Ich bin nicht in der Lage zu reproduzieren Sie das problem mithilfe der oben genannten version von
find
Die Bedeutung dieser drei Möglichkeiten sind folgende:
n: genau n 24-Stunden-Zeiträume (Tage) in Jahren 0 heute bedeutet.
+n: "mehr dann n 24-Stunden-Zeiträume (Tage) her", oder älter, dann n,
-n: weniger als n 24-Stunden-Zeiträume (Tage) Woche (-n), oder jünger dann n. Es ist offensichtlich, dass -1 und 0 sind die gleichen und beide also "heute".
HINWEIS: Wenn Sie Parameter verwenden, mit der find-Befehl in Skripten seien Sie vorsichtig, wenn -mtime parameter ist gleich null. Einige (frühere) Versionen von GNU finden, falsch interpretieren Sie den folgenden Ausdruck
Sourece: http://www.softpanorama.org/Tools/Find/index.shtml