14 Ordner stehen lassen rest Löschen

08/04/2012 - 10:09 von Maximilian Koch | Report spam
Hallo NG

ich habe hier ein Script welches in einem Bestimmten Ordner löcht aund immer
die aktuellesten 14 stehenlàsst.
funktionieren tut es eigentlich, aber es löscht mir nur immer einen Ordner.
nàmlich den 15ten. hàtte es 20 Ordner, würde er nicht 6 Stück löschen
soindern nur einen. kann mir jemand weiterhelfen?

*********************************************************
mount ${ordner}
cd ${ordner}

# 14 Ordner bleiben immer stehen, die restlichen werden gelöscht!
for dir in "$(find -maxdepth 1 -mtime +13 -type d)";
do
rm -r "$dir";
done

unmount ${ordner}
**********************************************************

ich dachte mit "for" arbeite ich alle ergebnisse ab..


danke
 

Lesen sie die antworten

#1 Stefan Reuther
08/04/2012 - 11:27 | Warnen spam
Maximilian Koch wrote:
# 14 Ordner bleiben immer stehen, die restlichen werden gelöscht!
for dir in "$(find -maxdepth 1 -mtime +13 -type d)";
do
rm -r "$dir";
done

unmount ${ordner}
**********************************************************

ich dachte mit "for" arbeite ich alle ergebnisse ab..



Tust du auch, allerdings machen die Anführungszeichen um den find-Befehl
aus dessen kompletter Ausgabe ein Ergebnis.

Lass find den Löschbefehl aufrufen.
find -maxdepth 1 -mtime +13 -type d -exec rm -r {} \;
Da übergibt find den Namen direkt an rm, ohne dass zwischendurch nochmal
versucht wird, das irgendwie in eine Shellvariable zu parsen.


Stefan

Ähnliche fragen