English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

分享Linux下正确快速删除大量文件的方法

Premessa

Attenzione, il termine 'grande quantità' utilizzato in questo articolo non si riferisce alla dimensione, ma al numero, ad esempio, ci possono essere milioni di file piccoli in una directory.

Recentemente, durante l'ottimizzazione del server, ho scoperto che nella directory maildrop di postfix e nella directory clientmqueue ci sono molti file. Entrare in queste directory e utilizzare il comando ls è un'azione stupida, mentre eseguire direttamente rm * non ha alcuna reazione, né il numero di file è diminuito. Questo significa che utilizzare direttamente il comando rm per eliminare file in directory con un gran numero di file non è efficace.

Quindi, quale è il metodo corretto? Ci sono due metodi disponibili:

Primo metodo:

find /path/to/directory -type f -exec rm {} \;

Secondo metodo:

ls -1 /path/to/directory | xargs -I{} rm {}

Questi due metodi possono eliminare con successo un gran numero di file, e sono anche molto veloci. Ma c'è un metodo migliore, ad esempio, per eliminare la directory clientmqueue menzionata di sopra, che contiene tutti i singoli messaggi di posta, utilizzare il metodo seguente:

service sendmail stop
cd /var/spool
mv clientmqueue clientmqueue-todelete
mkdir clientmqueue
chown --reference=clientmqueue-todelete clientmqueue
chmod --reference=clientmqueue-todelete clientmqueue
service sendmail start
rm -rf clientmqueue-todelete

Il metodo menzionato di sopra consiste nel rinominare la directory e utilizzare il parametro di riferimento --reference per ricostruire la directory, quindi eliminare la directory rinominata. Eliminare la directory direttamente è molto veloce. Puoi anche conservare la copia di backup e non eliminarla. È più sicuro.

Sommario

Questo è tutto il contenuto dell'articolo, spero che il contenuto di questo articolo possa aiutare un po' di voi nello studio o nel lavoro. Se avete domande, potete lasciare un messaggio per discutere, grazie per il supporto a Tutorial Yell.