Je možné uvést největší soubory na mém pevném disku? Často používám df -H
pro zobrazení využití disku, ale toto pouze udává procento plné, zbývající GB atd.
Dělám spoustu datově náročných výpočtů, s velkým počtem malých souborů a velmi malým počtem velmi velkých souborů. Protože většina používaného místa na disku je ve velmi malém počtu souborů, může být obtížné sledovat, kde jsou tyto velké soubory. Odstranění souboru o velikosti 1 kB nezbavuje mnoho místa, ale odstraní soubor o velikosti 100 GB. Existuje nějaký způsob, jak třídit soubory na pevném disku podle jejich velikosti?
Dík.
Se standardními dostupnými nástroji:
Seznam 10 největších souborů z aktuálního adresáře: du . | sort -nr | head -n10
Seznam největších adresářů z aktuálního adresáře: du -s * | sort -nr | head -n10
UPDATE V těchto dnech obvykle používám čitelnější formulář (jak Jay Chakra vysvětluje v jiné odpovědi a nechává | head -n10
, jednoduše nechte rolovat mimo obrazovku. Poslední řádek obsahuje největší soubor nebo adresář (strom).
Někdy např. když máte v aktuálním adresáři spoustu přípojných bodů, místo použití -x
nebo více --exclude=PATTERN
, je snazší připojit souborový systém na nepoužívaný bod připojení ( často /mnt
) a pracovat odtamtud.
Nezapomeňte, že při práci s velkými (NFS) svazky můžete při spuštění du
způsobit spoustu zatížení na backendu úložiště (filer) nad množstvím (pod) adresářů. V takovém případě je lepší zvážit nastavení quota
na svazku.
Přidává se k odpovědi Jippie
Seznam největších adresářů z aktuálního adresáře v čitelném formátu:
du -sh * | sort -hr | head -n10
Vzorek:
[~]$ du -sh * | sort -hr | head -n10
48M app
11M lib
6.7M Vendor
1.1M composer.phar
488K phpcs.phar
488K phpcbf.phar
72K doc
16K nbproject
8.0K composer.lock
4.0K README.md
Díky tomu je pohodlnější číst :)
Zkuste ncdu
, protože vám může poskytnout přehled o využití disku. Z jeho webových stránek:
Analyzátor využití disku s rozhraním ncurses, který má být spuštěn na vzdáleném serveru, kde nemáte úplné gafické nastavení, ale musí se týkat jednoduchého připojení SSH. Cílem ncdu je být rychlý, jednoduchý a snadno použitelný a měl by být schopen běžet v jakémkoli minimálním prostředí podobném POSIX s nainstalovanými ncurses.
(gnu)
du -max /dir | sort -n
Chcete-li zobrazit velké soubory i velké adresáře, lze je použít k identifikaci, kde je třeba provést nějaké vyčištění.
du -max | sort -n | tail -1000
...
46632 ./i386/update/SuSE-SLES/8/rpm/i586/kernel-source-2.4.21-138.i586.rpm
49816 ./UnitedLinux/apt/i386/RPMS.updates/k_debug-2.4.21-138.i586.rpm
679220 ./UnitedLinux/apt/i386/RPMS.updates
679248 ./UnitedLinux/apt/i386
679252 ./UnitedLinux/apt
691820 ./UnitedLinux/i586
691836 ./i386/update/SuSE-SLES/8/rpm/i586
695192 ./i386/update/SuSE-SLES/8/rpm
695788 ./i386/update/SuSE-SLES/8
695792 ./i386/update/SuSE-SLES
695804 ./i386/update
695808 ./i386
1390184 ./UnitedLinux
(Vím, že je to docela starý strom: p)
Existuje jednoduchý a efektivní způsob, jak zjistit velikost každého souboru a adresáře v Ubuntu:
Aplikace> Příslušenství> Disk Usage Analyzer
v tomto okně klikněte na tlačítko "Prohledat souborový systém" na panelu nástrojů. po krátké době (vteřiny) máte využití disku v každém adresáři a souboru.
Pokud dáváte přednost grafickému nástroji, existuje https://github.com/shundhammer/qdirstat
Můžete to zkusit pomocí tohoto příkazu, zobrazí seznam všech souborů větších než 20 MB.
find / -type f -size +20000k -exec ls -lh {} \; 2> /dev/null \
| awk '{ print $NF ": " $5 }' | sort -hrk 2,2
zadejte následující příkaz
cd /
potom zadejte
du -sh * | grep G
výše uvedený příkaz ukazuje, kolik paměti používá adresář. poté se musíte rozhodnout, který adresář nebo soubor chcete odstranit