Ви можете використовувати , 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.