Puede utilizar rm -v
para rm
imprimir una línea por archivo eliminado. De esta manera, puede ver que rm
efectivamente está trabajando para eliminar archivos. Pero si tiene miles de millones de archivos, todo lo que verá es que rm
todavía funciona. No tendrá idea de cuántos archivos ya se eliminaron y cuántos quedan.
La herramienta pv
puede ayudarlo con una estimación del progreso.
http://www.ivarch.com/programs/pv.shtml
Así es como invocaría rm
con pv
salida de ejemplo
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
En este ejemplo artificial dije pv
que hay 1000
archivos. La salida de pv
muestra que 562 ya están eliminados, el tiempo transcurrido es de 7 segundos y la estimación para completar es de 5 segundos.
Alguna explicación:
pv -l
hace pv
contar por nuevas líneas en lugar de bytes
pv -s number
le dice pv
cuál es el total para que pueda darle una estimación.
- La redirección al
logfile
final es para una salida limpia. De lo contrario, la línea de estado de pv
se mezcla con la salida de rm -v
. Bonificación: tendrá un archivo de registro de lo que se eliminó. Pero cuidado, el archivo se volverá enorme. También puede redirigir a /dev/null
si no necesita un registro.
Para obtener el número de archivos puede usar este comando:
$ find dirname | wc -l
Esto también puede llevar mucho tiempo si hay miles de millones de archivos. También puede usar pv
aquí para ver cuánto ha contado
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
Aquí dice que tardó 4 segundos en contar 278k archivos. El recuento exacto al final ( 278044
) es la salida de wc -l
.
Si no desea esperar el recuento, puede adivinar el número de archivos o usarlo pv
sin estimación:
$ rm -rv dirname | pv -l > logfile
De esta manera, no tendrá una estimación para terminar, pero al menos verá cuántos archivos ya están eliminados. Redireccionar a /dev/null
si no necesita el archivo de registro.
Nitpick:
- lo que realmente necesita
sudo
?
- generalmente
rm -r
es suficiente para eliminar de forma recursiva. No hay necesidad de rm -f
.