Löschen von Dateien in Abhängigkeit vom Modifikationsdatum

HEWeiss

Benutzer
Mitglied seit
28. Mai 2015
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Ich habe im "Task scheduler" eine Aufgabe angelegt mit der Befehlszeile:
"find /volume1/.../record -type f -mtime +1 -exec rm {} \;"
Leider wird keine Datei gelöscht, auch keine die ein länger zurückliegendes Modifikationsdatum hat.
Wenn ich "-mtime +1" herausnehme, dann werden alle Dateien im Verzeichnis gelöscht.
Ich greife also auf das richtige Verzeichnis zu und der Löschbefehl arbeitet auch.

Der task bewirkt auch keine Fehlermeldung...

Hat jemand eine Idee, wo das Problem liegen könnte?
Danke für Hinweise!
 

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
13.276
Punkte für Reaktionen
5.575
Punkte
524

HEWeiss

Benutzer
Mitglied seit
28. Mai 2015
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Danke,

aber genau das dort Vorgeschlagene habe ich versucht - und bin eben wie oben beschrieben angestanden
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.565
Punkte für Reaktionen
3.607
Punkte
468
Lass doch halt erstmal das " -exec rm {} \;" weg und lass dir die Dateien nur anzeigen. Dann spiel mit den Parametern von find herum wie z.B. hier beschrieben. Erst wenn die Ausgabe soweit passt, hängst du das " -exec rm {} \;" wieder dahinter.
Oder alternativ: du hängst erstmal "-exec ls -als {} \;" dahinter, dann siehst du auch gleich das Datum der Dateien, die gelöscht würden.
 
  • Like
Reaktionen: HEWeiss

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
13.276
Punkte für Reaktionen
5.575
Punkte
524
find /volume1/test/ -mtime +8 -delete funktioniert ohne Probleme
 
  • Like
Reaktionen: HEWeiss

HEWeiss

Benutzer
Mitglied seit
28. Mai 2015
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Lass doch halt erstmal das " -exec rm {} \;" weg und lass dir die Dateien nur anzeigen. Dann spiel mit den Parametern von find herum wie z.B. hier beschrieben. Erst wenn die Ausgabe soweit passt, hängst du das " -exec rm {} \;" wieder dahinter.
Oder alternativ: du hängst erstmal "-exec ls -als {} \;" dahinter, dann siehst du auch gleich das Datum der Dateien, die gelöscht würden.
Danke:
Ich habe das so probiert, indem ich das -mtime entfernt habe, dann wurden alle Dateien im Verzeichnis gelöscht.
Daraus habe ich geschlossen die Bedingung -mtime +1 wäre das Problem

find /volume1/test/ -mtime +8 -delete funktioniert ohne Probleme
Danke, aber leider nicht, siehe oben. Es liegt scheinbar an der Bedingung, nicht am Löschen selbst.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.565
Punkte für Reaktionen
3.607
Punkte
468
Das find ohne weitere Bedingungen alles findet, dürfte klar sein. "-mtime +8" filtert dann auf Objekte, die vor mehr als (+) 8 Tagen modifiziert (mtime) wurden. Wenn nichts gefunden wird, gibt es scheinbar keine Objekte für die das gilt. Hast du das mal geprüft?
Die 3 Zeiten eines Objekts (Access/Modify/Change) zeigt dir der Befehl "stat <Datei>", passend dazu kennt find die Optionen atime, mtime und ctime.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: luddi und HEWeiss

HEWeiss

Benutzer
Mitglied seit
28. Mai 2015
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Danke jetzt läuft es - und leider weiß ich nicht warum...

Jedenfalls Danke für jeden Vorschlag.
 
  • Haha
Reaktionen: luddi


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat