Możesz użyć rm -v
do rm
usunięcia jednej linii na plik. W ten sposób widać, że rm
rzeczywiście działa usuwanie plików. Ale jeśli masz miliardy plików, zobaczysz, że rm
nadal działa. Nie będziesz miał pojęcia, ile plików zostało już usuniętych, a ile pozostało.
Narzędzie pv
może pomóc w oszacowaniu postępu.
http://www.ivarch.com/programs/pv.shtml
Oto jak można powoływać rm
się pv
z Przykâadowa
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
W tym wymyślonym przykładzie powiedziałem pv
, że są 1000
pliki. Dane wyjściowe pv
pokazują, że 562 są już usunięte, czas, który upłynął, wynosi 7 sekund, a oszacowanie do ukończenia to 5 sekund.
Niektóre wyjaśnienia:
pv -l
sprawia, pv
że liczyć według nowego wiersza zamiast bajtów
pv -s number
informuje, pv
co to jest suma, dzięki czemu można oszacować.
- Przekierowanie
logfile
na końcu służy do czystego wydruku. W przeciwnym razie linia statusu z pv
zostanie pomieszana z wyjściem z rm -v
. Bonus: będziesz mieć plik dziennika tego, co zostało usunięte. Ale uwaga, plik stanie się ogromny. Możesz również przekierować do, /dev/null
jeśli nie potrzebujesz dziennika.
Aby uzyskać liczbę plików, możesz użyć tego polecenia:
$ find dirname | wc -l
Może to również zająć dużo czasu, jeśli istnieją miliardy plików. Możesz także użyć pv
tutaj, aby zobaczyć, ile się to liczyło
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
Tutaj napisano, że liczenie 278 tys. Plików zajęło 4 sekundy. Dokładna liczba na końcu ( 278044
) jest wyjściem z wc -l
.
Jeśli nie chcesz czekać na zliczanie, możesz zgadnąć liczbę plików lub użyć pv
bez oszacowania:
$ rm -rv dirname | pv -l > logfile
W ten sposób nie będziesz mieć oszacowania do ukończenia, ale przynajmniej zobaczysz, ile plików zostało już usuniętych. Przekieruj do, /dev/null
jeśli nie potrzebujesz pliku dziennika.
Nitpick:
- Czy naprawdę potrzebujemy
sudo
?
- zwykle
rm -r
wystarczy usunąć rekurencyjnie. nie ma potrzeby rm -f
.