Oggi ti mostreremo un modo con cui puoi eliminare i file più vecchi di 'X' giorni. Supponiamo che tu voglia eliminare i file più vecchi di 7 giorni, questo articolo ti aiuterà a farlo. L'utility find ti permette di passare un paio di argomenti interessanti, incluso uno per eseguire un altro comando su ogni file. Per capire quali file sono più vecchi di un certo numero di giorni, useremo questo trova utilità e quindi usa il comando rm per eliminarli. La sintassi del comando è la seguente:
trova /percorso/di/file* -mtime +5 -exec rm {} \;
Non siamo responsabili per eventuali perdite di dati che potrebbero verificarsi. Ti abbiamo consigliato al elenca i file e controlla prima di eliminarli, eseguendo il seguente comando:
trova /percorso/di/file* -mtime +5 -exec ls {} \;
NOTA: Ci sono spazi tra rm, {} e \;

Spiegazione del comando:
Il primo argomento nel comando precedente è il percorso dei file. Il secondo argomento è -Mtime è usato per specificare quanti giorni ha il file. Se inserisci +5, troverà i file più vecchi di cinque giorni. L'ultimo argomento è Exec- ti permette di passare un comando come rm. Il {} \; alla fine è necessario terminare il comando.
Questo dovrebbe funzionare su quasi tutte le versioni di Linux come Ubuntu, Fedora, Red Hat, Suse, ecc. Se stai affrontando un problema che sembra abbastanza impossibile qui, faccelo sapere nei commenti qui sotto.
Ho usato questo trucco! Fantastico trucco! Grazie per aver condiviso un trucco così bello :)
Ya ho usato questo cammand durante la sessione di pratica di RHCE.
find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld
alias 5DayLs="find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld"
Abbiamo creato qualcosa insieme dal tuo suggerimento qui. Un metodo per creare un elenco di file di testo normale di file vecchi di cinque giorni. È più facile tenere un registro per la visualizzazione prima di rimuovere i file. Gli utenti possono quindi utilizzare cat, vi, vim, gedit, emacs per vedere cosa possono buttare via.
find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld
Scomponendolo ./ è la directory corrente. Trova utilizzando una directory corrente spesso più sicuro rispetto all'utilizzo di / cannon. >> si aggiunge a un file, se non esiste, viene creato.
Anche pensato che potrebbe essere utile come alias. Probabilmente potrebbe / dovrebbe prima portarlo su uno script di shell. Essere pigro però, qui tardi.
Grazie! Ho usato questa sintassi in un cron job.
Il buon consiglio per eliminare i file più vecchi di determinati giorni. Tuttavia, se la tua lista di argomenti è lunga (penso che il massimo sia 65535 o qualcosa del genere) questo non funzionerà.
Ho uno script personalizzato che fa il lavoro:
#!/bin/bash
cd /directory-to-be-checked
allfiles=`ls`
NOW=`date +%s`
for filename in $allfiles
do
OLD=`stat -c %Z $filename`
if [ "$2" == "" ]
then
DELAY=86400
else
let "DELAY=$2 * 86400"
fi
AGE=`expr $NOW - $OLD`
#echo "Delay is $DELAY and Age is $AGE"
#exit 0
if [ $AGE -gt $DELAY ]
then
#echo "File $filename is $AGE"
fstamp=`ls -l $filename`
if [ "$1" == "DEL" ]
then
echo "Deleting file $filename"
`rm -f $filename`
else
echo "$fstamp"
fi
fi
Donate.
Grazie per aver dato la sceneggiatura.
Il tuo benvenuto Namase.
Chiama lo script in questo modo:
./scriptname.sh DEL numDays
Se numDays non è specificato, utilizzerà il minimo di 1 quindi assicurati di specificare numDays. Non sono responsabile per come usi questo script e per qualsiasi perdita di dati che potrebbe verificarsi.
se voglio eliminare Dirs e file da 30 giorni sul mio computer remoto e una cosa escludendo 1 e 2 o 3 dir e quindi come posso farlo ..?? Per favore condividi i tuoi pensieri.
Uso questa tecnica è molto utile per eliminare il file trc in Oracle
Grazie per aver condiviso questo utile comando per tutti gli utenti. Possiamo facilmente eliminare i file più vecchi in Linux. Anche io lo sto cercando e finalmente ho trovato la soluzione qui.
Questo ottiene anche i file nelle sottodirectory? Se sì, come potrei farlo in modo che non lo faccia?
trova /home/greg/logs -type f -mtime +5 -exec rm {} ;
Stavo cercando tale comando. Davvero utile. E grazie per aver condiviso la sceneggiatura, Vivian.