Alle Dateien finden, die älter als eine Minute sind

Alle Dateien finden, die älter als eine Minute sind

Wie kann ich findDateien auswählen, die geschrieben und in der letzten Minute nicht geändert wurden?

Ich weiß, dass ich es auch andersherum machen kann, also mit nach Dateien suchen kann, die in den letzten 60 Sekunden geändert wurden -mtime -60s, aber ich möchte die Dateien, die in den letzten 60 Sekunden nicht geändert wurden.

Ich verwende Linux und erhalte diesen Fehler, wenn ich Sekunden verwende:

find ??/ -mtime +60s -name blah.tsv
find: invalid argument `+60s' to `-mtime'

Antwort1

Verwendenfind /path -type f -mtime +60s

Das -Zeichen vor den Ziffern ist kein normaler „Argumentstrich“, sondern bedeutet „weniger als“. +dann ist „mehr als“.

Aus man find:

Bei allen Primärzahlen, die ein numerisches Argument annehmen, kann der Zahl ein Pluszeichen („+“) oder ein Minuszeichen („-“) vorangestellt werden. Ein vorangehendes Pluszeichen bedeutet „mehr als n“, ein vorangehendes Minuszeichen bedeutet „weniger als n“ und keines von beiden bedeutet „genau n“.

Es ist zu beachten, dass fürgenau n, die Zeit wird gerundet. 1(1 Tag) bedeutet also nicht 86400 Sekunden.

Antwort2

find . -type f -mmin +1

Beispiel

$ ls *
four.txt  one.txt  three.txt  two.txt

$ touch foo && find . -mmin +1
.
./three.txt
./four.txt
./two.txt
./one.txt

Antwort3

Der zweite -ist-mtime -60snichtein Optionentrennzeichen.

-mtimeist eine Option, gefolgt von einemOptionsargument. Das Optionsargument ist -60s, und das -darin ist Teil des Optionsarguments selbst,nichtein Optionstrennzeichen. Es bedeutet „weniger als 60 Sekunden“. Optionsargumente 60sund +60sbedeuten „gleich 60 Sekunden“ bzw. „größer als 60 Sekunden“.

Das Apple MacOS-Handbuch und das FreeBSD-Handbuch erwähnen die Präfixe +und -an genau einer Stelle und vergessen, irgendwo zu erklären, was sie bedeuten. Das hier sind sie.

(Interessanterweise enthält das GNU-Infohandbuch für GNU finddieselbe Auslassung. Allerdings findunterscheidet sich die Syntax von GNU für Zeiten etwas von der findSyntax von BSD und MacOS.)

Weiterführende Literatur

Antwort4

In Unix-Systemen folgte auf -mtime früher ein +/-, gefolgt von einer Zahl und anschließend den Zeiteinheiten. [+-]nn[dms]

Linux verwendet mtime für Tage und mmin für Minuten, aber es scheint keine Sekundenoption zu geben und es wird kein Zeiteinheitenspezifizierer verwendet. Das + oder - bezieht sich immer noch auf größer oder kleiner als die Zeit und ist kein Optionsargument, wie oben erwähnt.

Sie könnten -mmin 1 verwenden, aberhttps://unix.stackexchange.com/questions/238738/find-files-newer-than-15-seconds-but-older-than-2-secondsbespricht den allgemeinen Umgang mit Sekunden.

verwandte Informationen