Elimina i file Solaris precedenti a una certa data e ora

A volte è utile cancellare i file in base alla loro età. Questa ricetta tecnica descrive una procedura per eliminare i file invecchiati usando il comando di ricerca UNIX.


Il comando find ha a -più nuovo espressione che confronta i file trovati con un file di riferimento. Restituisce i file con un tempo di modifica più recente rispetto al file di riferimento. Per trovare i file più vecchi, precedere l'espressione -newer con l'operatore di negazione !.

Se non si dispone di un file da utilizzare con un timestamp appropriato, è possibile creare un file con questa ricetta tecnica: Creare / modificare un file UNIX con un timestamp arbitrario.

Dato il file di riferimento / tmp / timeref, puoi trovare tutti i file più vecchi nella directory di lavoro corrente e sotto usando il seguente comando:

trova . ! -newer / tmp / timeref -exec ls -l {} \; | Di Più

Questo comando è sicuro e fornirà solo un lungo elenco dei file di destinazione, mostrando i file una pagina alla volta. Utilizzando questo comando, è possibile assicurarsi che la sintassi del comando sia corretta prima di eseguire l'eliminazione irreversibile.

Una volta che hai dimestichezza con la sintassi di ricerca, puoi passare al comando per causare la cancellazione:

trova . ! -newer / tmp / timeref -exec rm {} \;

Stai molto attento a usare questo comando. Non esiste un modo semplice per ripristinare i file in UNIX. L'utilizzo della versione lunga dell'elenco file di questo comando fornisce innanzitutto una grande quantità di sicurezza poiché è possibile vedere esattamente cosa accadrà. Passare a una directory ed eseguire il comando find al suo interno utilizzando il comando. poiché il percorso fornisce una protezione aggiuntiva dall'immissione errata del percorso.