find befehl

mschaedl

Newbie
Registriert
Dez. 2015
Beiträge
6
Hallo zusammen,

Auf einem Ubuntu Server möchte ich einen Cron Job einrichten. Dieser soll täglich in einem bestimmten Verzeichniss nach Dateien älter als 60Tage suchen und diese auch löschen.

Dazu habe ich folgenden Befehl gefunden:

find /zielverzeichnis -type f -mtime +5 | xargs ls -l

Ich denke aber das dieser nur die Daten löscht und das leere Verzeichnis dann aber bestehen lässt.

Die Ordnerstruktur ist folgendermaßen:

Es gibt einen Ordner Upload. Darunter befinden sich FTP Upload Ordner verschiedenster User. Diese Userordner müssen definitiv bestehen bleiben. In den Userordnern soll nach Dateien gesucht werden die älter als 60 Tage sind. Sollte nach dem löschen dabei ein Ordner komplett geleert worden sein, so müsste auch dieser gelöscht werden.

Wäre schön wenn mir da jemand bei helfen könnte.

Danke und Grüße
 
Find unterstützt die Option -empty zum Finden leerer Verzeichnisse (und Dateien). Du könntest einen zweiten find-Befehl anfügen, der nach dem Löschen veralteter Dateien die leer gewordenen Verzeichnisse löscht. Pseudocode:

Code:
find -oldfiles | xargs rm; find -empty -type d | xargs rm -r
 
Ok danke sehr. Und wie kann ich verhindern das wenn ein userordner komplett leer ist, dass dieser dann auch gelöscht wird?
 
Code:
find . -path './Upload/*/*'
Findet ./Upload/usera/bla, ./Upload/userb/bla, ./Upload/userb/bla/fasel,
aber nicht ./Upload, ./Upload/usera, ./Upload/userb.
 
Zurück
Oben