Ta bort Solaris-filer som är äldre än en viss dag och tid

Att ta bort filer på villkorligt sätt baserat på deras ålder är ibland användbart. Detta tech-recept beskriver ett förfarande för att radera åldrade filer med hjälp av UNIX-find-kommandot.


Sökkommandot har a -nyare uttryck som jämför de funna filerna mot en referensfil. Den returnerar filer med en ändringstid som är nyare än referensfilen. För att hitta äldre filer, fortsätt -nya uttrycket med negationsoperatören !.

Om du inte har en fil att använda med en lämplig tidstämpel kan du skapa en fil med detta tech recept: Skapa / modifiera en UNIX-fil med en godtycklig tidstämpel.

Med referensfilen / tmp / timeref kan du hitta alla äldre filer i den aktuella arbetsmappen och under följande kommando:

hitta. ! -nyckla / tmp / timeref -exec ls -l {} \; | Mer

Detta kommando är säkert och kommer bara att ge en lång lista över målfilerna, som visar filerna en sida i taget. Med det här kommandot kan du se till att kommandotyntaxen är korrekt innan du utför den irreversibla borttagningen.

När du är bekväm med söksyntaxen kan du ändra till kommandot för att orsaka radering:

hitta. ! -nyckla / tmp / timeref -exec rm {} \;

Var försiktig med detta kommando. Det finns inget enkelt sätt att återställa filer i UNIX. Att använda den långa fillistans version av det här kommandot ger först en hel del säkerhet eftersom du kan se exakt vad som händer. Byta till en katalog och utföra sökkommandot i den med hjälp av. som vägen ger ett visst skydd mot att missgynna vägen.