• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

RM-Befehl datumsbezogen ?

*dan*

Newbie
Hallo und gleich sorry,

ich habe aber gesucht und nix passendes gefunden. 8)

Ich möchte in einem Log-Verzeichnis Dateien löschen mit dem remove-Befehl.
Das ist so, da sind ungefähr 50 Ordner drin, nach sechsstelligen Artikelnummern benannt (Ordner heißt zum Beispiel: "102015").
Jetzt will ich aus diesen 50 Ordner ( von 102010 - 102060) alle log-Dateien löschen, die älter als 14 Tage sind.

Wie mache ich das denn am einfachsten ?? Mit einem Befehl ??

Danke und schönes WE :D

dan
 

scg

Hacker
Zwei Stichworte, wenn du damit nicht weiterkommst, nochmal melden:

rm für das Löschen ist prima.
find für die Auswahl von Verzeichnissen und Dateien

Tipp: Wenn du dir mit

man rm
man find


die Befehle anguckst, schau bei "find" gleich mal unter -exec nach.
 

nobbiew

Hacker
Code:
find VERZEICHNIS -ctime +14 -type f -exec rm -f {} \;

sollte genau das tun.

Aber vorher mit
Code:
find VERZEICHNIS -ctime +14 -type f -exec ls -l {} \;
Prüfen, ob du auch die richtigen Dateien erwischst.
 
OP
*dan*

*dan*

Newbie
Hallo,

vielen Dank. Nur muss ich als Verzeichnisnamen jeden Ordner einzeln angeben, das heißt ich muss das 50 mal ausführen?

Das macht ja nix, ich werd das mal antesten.

dan
 
OP
*dan*

*dan*

Newbie
Danke euch,

das klappt wunderbar !! Listet mir das auf und löscht auch genauso !!

Schönes WE 8)

dan
 

TeXpert

Guru
du könntest den find-Befehl auf die Ordner loslassen und dann in den Ordnern mit
Code:
-exec rm -f {}/*.log
die Logfiles löschen.
 

nobbiew

Hacker
Braucht er doch gar nicht.

Wenn alle Ordner in einem Verzeichnis liegen, kann er den find einfach auf das übergeordnete Verzeichnis loslassen.

Wenn nicht, kann er alle VERZEICHNIS durch alle erforderlichen Verzeichnisse ersetzen (mit leerzeichen getrennt)

Besser ist es dann jedoch die Verzeichnisnamen in Eine Liste zu schreiben und dann in etwas folgendes zu machen

Code:
for verzeichnis in `cat liste`
do
   find $verzeichnis ...
done
Achtung: das Klappt nicht, wenn Leerzeichen im Verzeichnisnamen vorkommen.
 
Oben