X Tage alte Dateien löschen

brahma

brahma

Netzpirat
Hab ich das richtig in der man-page verstanden?

-mtime n
File's data was last modified n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file modification times.

heisst das
Code:
find /media/laufwerk -mtime X -type f -exec rm {} \;

mir alle Dateien in /media/laufwerk die X Tage und älter sucht und löscht? oder muss das -mtime +X heissen für die Zeitangabe?
 
Es muss wohl
Code:
mtime +X
heißen.
Anstatt
Code:
-exec rm {} \;
kannst du auch einfach
Code:
-delete
verwenden (ans Ende des find-Aufrufs anhängen).
 
Hm, hab da noch eine kleine Frage, häng das einfach mal an....

Folgende Abfolge: cp X Dateien, danach löschen im Quellordner.

Wenn ich nun sage:

cp *.* /irgendwo
if (($? == 0)); then
rm *.*
else
cp "nochmal"....
fi

dann fragt if doch mit $?==0 ab, ob der copy-Befehl ohne Fehler durchgelaufen ist oder? Sprich ich lösche erst, wenn die Dateien erfolgreich kopiert wurden, ansonsten kopierter nochmal oder?
$? enthält immer den EXIT-Status des vorhergehenden abgeschlossenen Befehls oder?
 
...
dann fragt if doch mit $?==0 ab, ob der copy-Befehl ohne Fehler durchgelaufen ist oder?
$? enthält den exitstatus des letzten Befehls - bei einem Fehler ist $? ungleich 0

Sprich ich lösche erst, wenn die Dateien erfolgreich kopiert wurden, ansonsten kopierter nochmal oder?
Ja, obwohl ich das mit dem nochmal kopieren so nicht lösen würde -> wenns beim ersten Kopieren schon nicht klappt wieso solls dann beim zweiten mal (vorallem falls du kein cp -f benutzt) besser funktionieren?
Hab da mal schnell ein Script geschrieben das kopierte Dateien löscht und alle anderen Dateien am Bildschirm ausgibt
Code:
for file in *
do
  cp "$file" "/dein/verzeichnis/"
  if [ $? -ne 0 ]
  then
    echo -e "$file konnte nicht kopiert werden\n"
  else
    rm "$file"
 fi
done
Zuerst eine for - Schleife die jede Datei im aktuellen Verzeichnis einzeln in "/dein/verzeichnis/" kopiert und überprüft obs auch funktioniert hat ansonsten wird eine Fehlermeldung ausgegeben

Optional kannst auch "/dein/verzeichnis/" durch "$1" ersetzen und dein Zielverzeichnis so beim Scriptaufruf als Parameter angeben

$? enthält immer den EXIT-Status des vorhergehenden abgeschlossenen Befehls oder?
ja
 

Ähnliche Themen

NagiosGrapher 1.7.1 funktioniert nicht

Löschen von Verzeichnissen älter als x Tage per Cron (Script)

Dateien loeschen die aelter als x tage sind

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Alle Dateien die älter sind als xx Tage löschen

Zurück
Oben