lejzerMedlem sedan juni 2002263 inlägg Hej,
Jag har följande skript för att radera filer automatiskt när dom blivit 4 dagar gamla.
find /home/mapp -ctime +4 -type f -exec rm {} \;
Detta innebär att filer raderas i hela hierarkin /home/mapp/etc/etc
Jag vill även att foldrarna som är skapade i /home/mapp ska raderas. I dagsläget är det endast filerna som raderas, men mapparna blir kvar.
Är det någon som vet om man på ett enkelt sätt kan fixa så att även mapparna raderas när dom är 4 dagar gamla?
Tack på förhand.
/ Martin
lejzerMedlem sedan juni 2002263 inlägg Fortfarande ingen som vet?
pimmeMedlem sedan sep. 20011 086 inlägg är det inte bara att ändra rm till rm -r ?
lejzerMedlem sedan juni 2002263 inlägg Tyvärr inte, det gjorde ingen skillnad alls.
lejzerMedlem sedan juni 2002263 inlägg Jag löste det själv, så här blev lösningen till slut:
find /home/mapp -ctime +4 -exec rm {} -fR \;
RobbanMedlem sedan dec. 19992 555 inlägg Denna rad gör dock inte vad du skrev att du vill göra. Den deletar en mapp som är äldre än 4 dagar, ja. Men den deletar även alla filer i mappen oavsett om de är äldre än 4 dagar eller inte.
Bara så att du är medveten om det. Kanske inte är ett problem? :)
lejzerMedlem sedan juni 2002263 inlägg Hej Robban,
Det är lustigt.. för att det verkar fungera som det ska. Jag har kollat nu över helgen, och mappar som fanns där i fredags och som är äldre än 4 dagar är borta. De mappar som inte är äldre än 4 dagar ligger kvar, liksom innehållet.
Är du säker? Hur skulle en korrekt rad se ut i annat fall?
Det kan ju vara så att den rensar filerna först, och nästa gång tar de tomma mapparna? Detta har jag inte hunnit kolla dock.
Är tacksam om du kan förklara hur korrekt syntax ska vara istället?
Tack på förhand!
RobbanMedlem sedan dec. 19992 555 inlägg
Jag har kollat nu över helgen, och mappar som fanns där i fredags och som är äldre än 4 dagar är borta.
Jo, precis. Och innehållet i dessa mappar försvinner även om där finns filer som inte är äldre än fyra dagar. Eftersom du tar bort mappen rekursivt.
Är tacksam om du kan förklara hur korrekt syntax ska vara istället?
Osäker på om du kan lösa det med en rad. Om du raderar filerna enligt den första raden du hade, kan du ju sedan köra rmdir (som bara tar bort mappen om den är tom) på alla mappar som är äldre än 4 dagar.
Men tillvägagångssättet beror ju på hur mapparna och filerna uppstått. Det kan ju vara så i ditt fall att det inte kan finnas en fil som är nyare än mappen den ligger i. Och då fungerar ju din lösning. Ville bara göra dig uppmärksam på att raden kanske inte gör det du tror att den gör, så att du inte får några obehagliga överaskningar. :)