Mały wpis ku pamięci: jak policzyć, ile miejsca zajmują w danym drzewie katalogów pliki z wybranymi rozszerzeniami.
W moim przypadku chciałem się dowiedzieć, ile miejsca zajmują filmy rodzinne. Pierwszym krokiem będzie odszukanie wszystkich filmów:
Zamiast używać standardowej konstrukcji -name
użyłem wyrażenia regularnego. Pozwoliło ona na dużo bardziej zwarte umieszczenie wszystkich rozszerzeń, które mnie interesują.
Teraz wypada wyświetlić informację, ile miejsca zajmuje każdy z plików. Można to tego użyć opcji -exec
w połączeniu z wywołaniem polecenia ls
, ale dużo lepszy efekt da użycie przełącznika -ls
. Efekt będzie podobny, a całość będzie funkcjonować dużo szybciej.
Ostatnim elementem będzie wyciągnięcie kolumny z wielkością pliku i jej zsumowanie, można to zrobić przy użyciu polecenia awk
:
I to w sumie rozwiązuje problem.
Ja jeszcze tylko chciałem mieć wielkość plików wyświetlaną w megabajtach. Można sobie do przeliczyć używając nawet zwykłego polecenia echo
, chociaż spada drastycznie czytelność kodu i tworzy się taki potworek: