È possibile utilizzare rm -v
per avere rm
stampare una riga per ogni file cancellato. In questo modo puoi vedere che rm
funziona davvero per eliminare i file. Ma se hai miliardi di file, tutto ciò che vedrai è che rm
funziona ancora. Non avrai idea di quanti file siano già stati eliminati e quanti ne siano rimasti.
Lo strumento pv
può aiutarti con una stima dei progressi.
http://www.ivarch.com/programs/pv.shtml
Ecco come invocheresti rm
con l' pv
output di esempio
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
In questo esempio inventato ho detto pv
che ci sono 1000
file. L'output di pv
mostra che 562 sono già stati eliminati, il tempo trascorso è di 7 secondi e la stima da completare è in 5 secondi.
Qualche spiegazione:
pv -l
fa pv
contare per newline anziché byte
pv -s number
indica pv
qual è il totale in modo che possa fornirti una stima.
- Il reindirizzamento alla
logfile
fine è per l'output pulito. Altrimenti la riga di stato da pv
viene confusa con l'output di rm -v
. Bonus: avrai un file di log di ciò che è stato eliminato. Ma attenzione, il file diventerà enorme. Puoi anche reindirizzare a /dev/null
se non hai bisogno di un registro.
Per ottenere il numero di file è possibile utilizzare questo comando:
$ find dirname | wc -l
Anche questo può richiedere molto tempo se ci sono miliardi di file. Puoi usare anche pv
qui per vedere quanto ha contato
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
Qui dice che ci sono voluti 4 secondi per contare 278k file. Il conteggio esatto alla fine ( 278044
) è l'output di wc -l
.
Se non si desidera attendere il conteggio, è possibile indovinare il numero di file o utilizzare pv
senza stima:
$ rm -rv dirname | pv -l > logfile
In questo modo non avrai alcuna stima da terminare ma almeno vedrai quanti file sono già stati eliminati. Reindirizzare a /dev/null
se non è necessario il file di registro.
nitpick:
- hai davvero bisogno
sudo
?
- di solito
rm -r
è sufficiente per eliminare in modo ricorsivo. non c'è bisogno di rm -f
.