Ви можете використовувати , 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
Тут йдеться про те, що для прорахування файлів 278k знадобилося 4 секунди. Точне підрахунок в кінці ( 278044
) - вихід з wc -l
.
Якщо ви не хочете чекати підрахунку, тоді ви можете вгадати кількість файлів або використовувати pv
без оцінки:
$ rm -rv dirname | pv -l > logfile
У такий спосіб у вас немає оцінки закінчити, але принаймні ви побачите, скільки файлів уже видалено. Перенаправлення на, /dev/null
якщо вам не потрібен файл журналу.
Нітпік:
- вам справді потрібно
sudo
?
- зазвичай
rm -r
достатньо для рекурсивного видалення. не потрібно rm -f
.