Você pode usar rm -v
para ter rm
imprimir uma linha por arquivo excluído. Dessa forma, você pode ver que rm
realmente está trabalhando para excluir arquivos. Mas se você tiver bilhões de arquivos, tudo o que verá é que rm
ainda está funcionando. Você não terá idéia de quantos arquivos já foram excluídos e quantos restam.
A ferramenta pv
pode ajudá-lo com uma estimativa de progresso.
http://www.ivarch.com/programs/pv.shtml
Aqui está como você iria invocar rm
com pv
com o exemplo de saída
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
Neste exemplo, eu disse pv
que existem 1000
arquivos. A saída de pv
mostra que 562 já foram excluídos, o tempo decorrido é de 7 segundos e a estimativa a ser concluída é de 5 segundos.
Alguma explicação:
pv -l
faz pv
contar por novas linhas em vez de bytes
pv -s number
informa pv
qual é o total para que você possa fazer uma estimativa.
- O redirecionamento para
logfile
no final é para saída limpa. Caso contrário, a linha de status de pv
será confundida com a saída de rm -v
. Bônus: você terá um arquivo de log do que foi excluído. Mas cuidado, o arquivo ficará enorme. Você também pode redirecionar para /dev/null
se não precisar de um log.
Para obter o número de arquivos, você pode usar este comando:
$ find dirname | wc -l
Isso também pode levar um longo tempo se houver bilhões de arquivos. Você pode usar pv
aqui também para ver o quanto isso contou
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
Aqui diz que levou 4 segundos para contar 278k arquivos. A contagem exata no final ( 278044
) é a saída de wc -l
.
Se você não quiser esperar a contagem, poderá adivinhar o número de arquivos ou usar pv
sem estimativa:
$ rm -rv dirname | pv -l > logfile
Assim, você não terá nenhuma estimativa para concluir, mas pelo menos verá quantos arquivos já foram excluídos. Redirecione para /dev/null
se você não precisar do arquivo de log.
Nitpick:
- você realmente precisa
sudo
?
- geralmente
rm -r
é suficiente para excluir recursivamente. não precisa rm -f
.