it-swarm-eu.dev

Jak zjistím celkovou velikost adresáře (složky) z příkazového řádku?

Existuje jednoduchý příkaz k zobrazení celkové agregované velikosti (využití disku) všech souborů v adresáři (složce)?

Vyzkoušel jsem je a nedělají, co chci:

  • ls -l, které zobrazuje pouze velikost jednotlivých souborů v adresáři, ani
  • df -h, které zobrazuje pouze volné a použité místo na mých discích.
838
David Barry

Příkaz du "shrnuje využití disku každého SOUBORU rekurzivně pro adresáře," např.

du -hs /path/to/directory
  • -h Má čísla "lidsky číst", např. získejte 140M namísto 143260 (velikost v KBytech)
  • -s Je pro shrnutí (v opačném případě dostanete nejen velikost složky, ale také za všechno in složku zvlášť)

Když používáte -h, Můžete třídit lidské čitelné hodnoty pomocí

du -h | sort -h

Příznak -h Na sort bude brát v úvahu hodnoty velikosti „Čitelné pro člověka“.


Pokud se chcete vyhnout rekurzivnímu výpisu všech souborů a adresářů, můžete zadat parametr --max-depth, Abyste omezili počet zobrazovaných položek. Nejčastěji --max-depth=1

du -h --max-depth=1 /path/to/directory
1349
Marcel Stimberg

Nedávno jsem našel skvělý interaktivní nástroj založený na ncurses, který vám rychle poskytne přehled o velikostech adresářů. Hledal tento druh nástroje po celá léta.

  • rychle procházet hierarchii souborů
  • můžete smazat např. obrovské dočasné soubory z vnitřku nástroje
  • extrémně rychlý

Ber to jako baobab pro příkazový řádek:

apt-get install ncdu
172
geekQ

Toto vyhledá velikost rekurzivně a umístí ji vedle názvu každé složky, spolu s celkovou velikostí dole, vše v lidském formátu

du -hsc *
59
Brad

Užívat si!

du foldername

Více informací o tomto příkazu zde

18
myusuf3

Níže uvádíme, co používám k tisku celkové velikosti, složky a velikosti souboru:

$ du -sch /home/vivek/* | sort -rh

Podrobnosti

 ------------------------------------------------------------
   -c, --total
          produce a grand total
   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)
   -s, --summarize
          display only a total for each argument
 -------------------------------------------------------------
   -h, --human-numeric-sort
          compare human readable numbers (e.g., 2K 1G)
   -r, --reverse
          reverse the result of comparisons

Výstup

 70M    total
 69M    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
 52K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
11
vivekyad4v

tree je další užitečný příkaz pro tuto úlohu:

Stačí nainstalovat přes Sudo apt-get install tree a zadejte následující:

tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files

Od strom člověka :

-h    Print  the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
      bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).

--du  For each directory report its size as the accumulation of sizes of all its files and  sub-directories
      (and their files, and so on). The total amount of used space is also given in the final report (like
      the 'du -c' command.)
10
αғsнιη

Z odpovědí bylo zřejmé, že du je nástroj k nalezení celkové velikosti adresáře. Je však třeba zvážit několik faktorů:

  • Výstup du může být někdy zavádějící, protože vykazuje prostor přidělený souborovým systémem, který se může lišit od součtu velikostí jednotlivých souborů. Souborový systém obvykle přiděluje souboru 4096 bytů, i když jste do něj uložili pouze jeden znak!

  • Rozdíly výstupů díky výkonu 2 a výkonu 10 jednotek. The -h přepněte na du rozdělí počet bytů 2 ^ 10 (1024), 2 ^ 20 (1048576) atd., aby poskytl lidsky čitelný výstup. Mnoho lidí by mohlo být více zvyklých vidět síly 10 (např. 1K = 1000, 1M = 1000000) a výsledek by byl překvapen.

Chcete-li najít celkový součet velikostí všech souborů v adresáři, v bajtech, proveďte následující kroky:

find <dir> -ls | awk '{sum += $7} END {print sum}'

Příklad:

$ du -s -B 1
255729664

$ find .  -ls | awk '{sum += $7} END {print sum}'
249008169
4
pdp

Pouze velikost adresáře ve formátu, který lze číst, použijte následující:

du -hs directoryname

Pravděpodobně to není ve správné části, ale z příkazového řádku můžete zkusit:

ls -sh filename

The -s je velikost a -h je člověk čitelný.

Použijte -l pro zobrazení v seznamu ls, jako níže:

ls -shl
2
Shiv Singh

du /foldername je standardní příkaz znát velikost složky. Nejlepší možností je najít možnosti čtením manuálové stránky:

man du

Před použitím příkazu byste si měli přečíst manuálovou stránku (k dispozici online ).

0

Zde je skript POSIX, který bude fungovat s:

  • Soubor
  • Soubory
  • Adresář
  • Adresáře
#!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'

Zdroj

0
Steven Penny

Pokud má požadovaný adresář mnoho podadresářů, použijte následující:

$ cd ~/your/target/directory
$ du -csh 

-c, - celkový součet
- s, --summarize zobrazí pouze součet pro každý argument
- h, - lidské velikosti čitelné v lidském formátu (např. 1K 234M 2G)

což by pak vytvořilo celkové využití paměti všemi soubory/složkami v aktuálním adresáři.

0
kmario23