find -ctime reagiert nicht auf touch-modifikation

svenloth

svenloth

Aktives Mitglied
Thread Starter
Dabei seit
17.09.2004
Beiträge
166
Reaktionspunkte
0
hi,

ich will mit find in einem bestimmten verzeichnis sub-dirs finden, die 2 tage oder älter sind um damit schlimme sachen anzustellen. Dazu benutze ich

Code:
find /mein/verzeichnis -ctime +2

klappt auch soweit. Jetzt habe ich aber an einigen Verzeichnissen was geändert (dadurch hat sich die ctime und atime natürlich geändert) nur sollen diese Verzeichnisse jetzt bitte sofort von meinem Script gefunden werden.

Ich tat:
Code:
touch -t 200410200000 meindirectory

ls -l zeigt:

Code:
drwxr-xr-x    3 user   gruppe    1298432 Oct 20 00:00 meindirectory

find findet leider nix. :confused: habs auch schon mit atime oder mtime probiert. Pustekuchen! Nur find -ctime +0 findet was.

Irgendjemand ne Idee warum???

...Sven
 
svenloth schrieb:
hi,

ich will mit find in einem bestimmten verzeichnis sub-dirs finden, die 2 tage oder älter sind um damit schlimme sachen anzustellen. Dazu benutze ich

Code:
find /mein/verzeichnis -ctime +2

...
Nach meinem Kenntnisstand sucht Du damit nicht nach Dateien, die zwei Tage oder älter sind, sondern deren Statusinformationen (bzw. inode) genau vor zwei Tagen (genauer vor mehr als 1x24 aber weniger als >=2x24 Stunden) zum letzten mal geändert wurden
 
Ich darf deinen Kenntnisstand mit einem Zitat aus dem Manfile auffrischen:
A preceding plus sign means "more than n'', a preceding minus sign means "less than n'' and neither means "exactly n''.
;)

Wie gesagt ich hab auch schon atime, mtime usw. ausprobiert. Ohne Erfolg.

...Sven
 
svenloth schrieb:
Ich darf deinen Kenntnisstand mit einem Zitat aus dem Manfile auffrischen ...
aber gerne ;)
Ich habs übrigens probiert; bei mir ist es auch so, wie Du es beschreibst.
Hast Du schon probiert ein Vergleichsfile zu "touchen" und dann mit "\! -newer" zu arbeiten ?
 
nein, aber probier ich gleich mal. Allerdings will ich mein Script nicht ändern denn "Never change a running system!"

Dann wart ich halt n*24h :)

...Sven
 
sodele, das lässt mich ja nicht in ruhe, deswegen haben wir hier mal ein bisschen getestet.

touch ändert nur die accesstim(atime) und die modificationtime(mtime). also muss man im find eine der beiden benutzten.

die atime ist aber nicht ratsam weil selbst ein "ls" in dem verzeichnis diesen timestamp ändert.

ein find mit mtime funktioniert jetzt. fragt mich nicht warum :)

...Sven
 
Zurück
Oben Unten