Mám adresář o velikosti 30 TB s miliardami souborů, které jsou formálně všechny soubory JPEG. Každou složku souborů mažu takto:
sudo rm -rf bolands-mills-mhcptz
Tento příkaz se pouze spustí a nic neukáže, zda funguje nebo ne.
Chci vidět, jak maže soubory nebo jaký je aktuální stav příkazu.
Přijatá odpověď:
Můžete použít rm -v mít rm vytisknout jeden řádek na odstraněný soubor. Tímto způsobem můžete vidět, že rm skutečně pracuje na odstranění souborů. Ale pokud máte miliardy souborů, uvidíte pouze to rm stále pracuje. Nebudete mít ponětí, kolik souborů je již smazáno a kolik zbývá.
Nástroj pv vám může pomoci s odhadem postupu.
http://www.ivarch.com/programs/pv.shtml
Zde je návod, jak byste vyvolali rm s pv s ukázkovým výstupem
$ rm -rv dirname | pv -l -s 1000 > logfile
562 0:00:07 [79,8 /s] [====================> ] 56% ETA 0:00:05
V tomto vykonstruovaném příkladu jsem řekl pv že jich je 1000 soubory. Výstup z pv ukazuje, že 562 je již smazáno, uplynulý čas je 7 sekund a dokončení odhadu je za 5 sekund.
Nějaké vysvětlení:
pv -ldělápvpočítat po nových řádcích místo bajtůpv -s numberříkápvjaký je celkový součet, aby vám mohl poskytnout odhad.- Přesměrování na
logfilena konci je pro čistý výstup. Jinak stavový řádek zpvse smíchá s výstupem zrm -v. Bonus:budete mít záznam o tom, co bylo smazáno. Ale pozor, soubor bude obrovský. Můžete také přesměrovat na/dev/nullpokud protokol nepotřebujete.
Chcete-li získat počet souborů, můžete použít tento příkaz:
$ find dirname | wc -l
To také může trvat dlouho, pokud existují miliardy souborů. Můžete použít pv zde také uvidíte, kolik se to napočítalo
$ find dirname | pv -l | wc -l
278k 0:00:04 [56,8k/s] [ <=> ]
278044
Zde se píše, že napočítaní 278k souborů trvalo 4 sekundy. Přesný počet na konci (278044 ) je výstup z wc -l .
Pokud nechcete čekat na počítání, můžete počet souborů uhodnout nebo použít pv bez odhadu:
$ rm -rv dirname | pv -l > logfile
Takto nebudete mít žádný odhad na dokončení, ale alespoň uvidíte, kolik souborů již bylo smazáno. Přesměrujte na /dev/null pokud soubor protokolu nepotřebujete.
Nitpick:
- opravdu potřebujete
sudo? - obvykle
rm -rstačí mazat rekurzivně. není potřebarm -f.