Вы можете использовать, rm -v
чтобы rm
распечатать по одной строке на файл. Таким образом, вы можете увидеть, что rm
действительно работает для удаления файлов. Но если у вас есть миллиарды файлов, все, что вы увидите, это то, что rm
все еще работает. Вы не будете знать, сколько файлов уже удалено и сколько осталось.
Инструмент pv
может помочь вам с оценкой прогресса.
http://www.ivarch.com/programs/pv.shtml
Вот как вы бы вызвать rm
с pv
с выходом , например ,
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
В этом надуманном примере я сказал, pv
что есть 1000
файлы. Выходные данные pv
показывают, что 562 уже удалены, истекшее время составляет 7 секунд, и оценка для завершения составляет 5 секунд.
Некоторое объяснение:
pv -l
заставляет pv
считать по новым строкам вместо байтов
pv -s number
говорит, pv
что такое общее количество, чтобы оно могло дать вам оценку.
- Переадресация
logfile
в конце предназначена для чистого вывода. В противном случае строка состояния из pv
смешивается с выходом из rm -v
. Бонус: у вас будет лог-файл того, что было удалено. Но будьте осторожны, файл станет огромным. Вы также можете перенаправить, /dev/null
если вам не нужен журнал.
Чтобы получить количество файлов, вы можете использовать эту команду:
$ find dirname | wc -l
Это также может занять много времени, если есть миллиарды файлов. Вы также можете использовать pv
здесь, чтобы увидеть, сколько он насчитал
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
Здесь говорится, что для подсчета 278 тыс. Файлов понадобилось 4 секунды. Точное число в конце ( 278044
) является выходным значением wc -l
.
Если вы не хотите ждать подсчета, вы можете угадать количество файлов или использовать pv
без оценки:
$ rm -rv dirname | pv -l > logfile
Таким образом, у вас не будет оценки, чтобы закончить, но, по крайней мере, вы увидите, сколько файлов уже удалено. Перенаправьте, /dev/null
если вам не нужен файл журнала.
придираться:
- тебе действительно нужно
sudo
?
- обычно
rm -r
достаточно рекурсивного удаления. нет необходимости rm -f
.