Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Shell] Dateien mit bestimmtem Datum löschen



Overlord04
23-01-2005, 13:22
Hi,

ich möchte Dateien aus bestimmten Ordnern löschen, die eine bestimmte Anzahl von Tagen alt sind.
Nur weiss ich jetzt nicht, wie ich vorgehen soll.
Benutze ich da ls oder find ?
ls -l zeigt ja die Dateidetails an, und so könnte man sich mit cut oder so, die einzelnen Daten(hier Plural Datum ;)) raussuchen. Aber selbst dann: Wie wird denn da möglichst einfach z.B. 10 Tage abgezogen ? Oder gibt es da doch noch einen Befehl, der mir das abnimmt. Wo man zB. wirklich einfach ne bestimmte Dauer als Parameter angeben kann und dieser dann alle Dateien, die älter sind ausgibt.
Wahrscheinlich wohl doch mehr find als ls, aber wie komme ich dann ans Datum. Mhmmm... Hoffe jemand kann mir helfen.

Ach noch was: in Shell ne Parameterabfrage, wie läuft das ? Also den Skriptaufruf mit Parametern, die dann in Variablen geschrieben werden. Mit google habe ich nicht wirklich das richtige gefunden. Im Prinzip ja wohl ganz einfach, doch habe ich nicht das richtige gefunden.

Danke im Voraus :)

Overlord04
23-01-2005, 15:26
ok, selber gefunden. ist immer so, dass nachdem man postet es selber findet :)
Hätte ich nicht gepostet... naja ihr wisst schon.

also:
mit den parametern war wirklich so einfach, wie ich dachte. Einfach $1 für Parameter 1, $2 für Par 2 und so weiter.
Nach den Dateien suchen, die bis zu einer bestimmten Anzahl von Tagen alt sind, benutzt man find. dann als parameter -ctime [anzahl tage].
Das war es schon.

Gruss

RapidMax
23-01-2005, 17:47
Bei find kannst du für die Zeiten ein + (grösser als) oder ein - (kleiner als) voranstellen um z.B. älter als N Tage zu realisieren (-ctime +N). Mit logischen Verknüpfungen erreichst du sogar Bereiche: find . -ctime +5 -a -ctime -10

Gruss, Andy

Overlord04
23-01-2005, 18:34
mhmm... aber negative zahlten akzeptiert er bei mir nicht. also -ctime -8 wird nicht anerkannt. wieso denn das ?

RapidMax
30-01-2005, 20:08
Was für ein System? Linux? Hast du GNU find?
$ find --version
GNU find Version 4.1.7

Gruss, Andy