Portál AbcLinuxu, 30. dubna 2025 11:30
Zase mám plný disk a je ho potřeba uklidit. Ruční prolézání a hledání největších macků není moc efektivní. Kdysi jsem používal aplikaci filelight, která pěkně v grafech ukázala, které adresáře / soubory zabírají nejvíc místa. Dneska jsem si řekl, že to půjde i bez ní a v konsoli.
Nebudu vás napínat, napsal jsem si skript, který vypíše x největších složek nebo souborů. X je parametr skriptu. Bez parametru skript vypíše všechno. Důležité je, že to počítá velikost každého adresáře zvlášť (du díky parametru -S nebere ohled na velikost zabranou podadresáři). Skript zobrazí jen velký adresář, ale už ne automaticky adresář ve kterém leží. U souboru to bohužel neplatí, skript ukáže jak velký soubor, tak jeho adresář, jiné chování by skript asi dost zkomplikovalo. Další výhodou skriptu je barevné zvýraznění (používa k němu ls, musíte ho mít zaplé v systému), které rozliší soubor, adresář, atd...
Skript bych sám asi tak jednoduše nestvořil, muselo mi pomoct pár známých, kteří bash umí podsatně lépe než já , jmenování být nechtějí, takže jim aspoň takhle poděkuji. Příšte prý ale budou chtít autorské poplatky... :-P
#!/bin/bash
P="tee"
if [ $1 ]; then P="head -n ${1}"; fi
du -a -S --block-size m | sort -nr | $P | while read SIZE NAME; do echo $SIZE `ls -aFhd --color=always "${NAME}"`; done
Výstup skriptu vypadá nějak takhle:
/usr/games $ space 9
15M ./bin/
4M ./bin/wesnoth-svn*
4M ./bin/wesnoth*
2M ./lib/torcs/
2M ./bin/wesnoth_editor-svn*
2M ./bin/wesnoth_editor*
2M ./bin/supertuxkart*
1M ./share/pixmaps/supertuxkart_64.xpm
1M ./share/pixmaps/supertuxkart_32.xpm
Tiskni
Sdílej:
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
du -x | sort -n | less
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
U souboru to bohužel neplatí, skript ukáže jak velký soubor, tak jeho adresář, jiné chování by skript asi dost zkomplikovalo.pomohlo by basename?
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.