it-swarm-eu.dev

Hledání souborů, které využívají nejvíce místa na disku

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.

47
Andrew

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.

53
jippie

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 :)

37
Jay Chakra

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.

14
Renan

(gnu)

du -max /dir | sort -nChcete-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)

4
Emmanuel

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.

2
Sam

Pokud dáváte přednost grafickému nástroji, existuje https://github.com/shundhammer/qdirstat

1
Hannes Snögren

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
0
patseb

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

0
Dipak bodare