GNU/Linux >> Znalost Linux >  >> Linux

Jak získat velikost adresáře v Linuxu

Při výpisu obsahu adresáře pomocí ls možná jste si všimli, že velikost adresářů je téměř vždy 4096 bajtů (4 kB). To je velikost prostoru na disku, který se používá k uložení metainformací pro adresář, nikoli to, co obsahuje.

Příkaz, který budete chtít použít k získání skutečné velikosti adresáře, je du , což je zkratka pro „disk use“.

Zjištění velikosti adresáře #

du zobrazí velikost souborového prostoru využívaného určenými soubory nebo adresáři. Pokud je zadaná cesta adresářem, du shrnuje využití disku každého podadresáře v tomto adresáři. Pokud není zadána žádná cesta, du hlásí využití disku aktuálního pracovního adresáře.

Při vyvolání bez možnosti du zobrazuje využití disku daného adresáře a každého jeho podadresáře v bajtech.

Obvykle byste chtěli zobrazit místo obsazené adresářem ve formátu čitelném pro člověka. Chcete-li například získat celkovou velikost /var adresáře, spustíte následující příkaz:

sudo du -sh /var

Výstup bude vypadat nějak takto:

85G	/var

Vysvětlíme si příkaz a jeho argumenty:

  • Příkaz začíná sudo protože většina souborů a adresářů je uvnitř /var adresáře jsou vlastněny uživatelem root a běžní uživatelé je nečtou. Pokud vynecháte sudo du příkaz vypíše „du:nelze číst adresář“.
  • s - Zobrazit pouze celkovou velikost zadaného adresáře, nezobrazovat součty velikosti souborů pro podadresáře.
  • h - Velikosti tisku ve formátu čitelném pro člověka (h ).
  • /var - Cesta k adresáři, jehož velikost chcete získat.

Co když chcete zobrazit využití disku v podadresářích první úrovně? Máte dvě možnosti. Prvním z nich je použití symbolu hvězdičky (* ), jak je znázorněno níže, což znamená „přiřadit vše, co nezačíná tečkou (. )“. -c volba říká du vytisknout celkový součet všech velikostí:

sudo du -shc /var/*
24K	/var/db
4.0K	/var/empty
4.0K	/var/games
77G	/var/lib
4.0K	/var/local
0	/var/lock
3.3G	/var/log
0	/var/mail
4.0K	/var/opt
0	/var/run
196K	/var/spool
28K	/var/tmp
85G	total

Dalším způsobem, jak získat zprávu o využití disku podadresáře první úrovně, je použít --max-depth možnost:

sudo du -h --max-depth=1 /var
77G	  /var/lib
24K	  /var/db
4.0K	/var/empty
4.0K	/var/local
4.0K	/var/opt
196K	/var/spool
4.0K	/var/games
3.3G	/var/log
5.0G	/var/cache
28K	/var/tmp
85G	/var
85G	total

Ve výchozím nastavení du ukazuje místo na disku používané adresářem nebo souborem. Chcete-li zjistit zdánlivou velikost adresáře, použijte --apparent-size volba. „Zdánlivá velikost“ souboru je množství dat, které soubor skutečně obsahuje.

sudo du -sh --apparent-size /var

Když přenášíte adresář přes SCP, Rsync. nebo SFTP, množství dat přenášených po síti je zjevná velikost souborů. To je důvod, proč velikost místa na disku použitého na zdroji při zobrazení s du (bez --apparent-size ) není stejná jako velikost na cíli.

du příkaz lze také kombinovat s jinými příkazy s rourami.

Chcete-li například vytisknout 5 největších adresářů v rámci /var adresáře, převedete výstup z du do sort příkaz k seřazení adresářů podle jejich velikosti a poté výstup do head příkaz, který vytiskne pouze prvních 5 adresářů:

sudo du -h /var/ | sort -rh | head -5
85G	/var/
77G	/var/lib
75G	/var/lib/libvirt/images
75G	/var/lib/libvirt
5.0G	/var/cache/pacman/pkg

Závěr č.

V Linuxu můžete získat velikost adresáře pomocí du příkaz.

Pokud máte nějaké dotazy nebo připomínky, zanechte níže komentář.


Linux
  1. Linux – jak zkombinovat strom s velikostí adresáře?

  2. Jak získat velikost adresáře v Linuxu

  3. Jak programově získám volné místo na disku pro adresář v Linuxu

  1. Jak získat velikost tar.gz v (MB) souboru v pythonu

  2. Jak získám absolutní adresář souboru v bash?

  3. Jak získat skutečnou velikost adresáře (mimo du)?

  1. Jak najít nejstarší soubor ve stromu adresářů v Linuxu

  2. Jak změnit velikost MTU v Linuxu

  3. Jak získat fyzickou velikost souboru v Linuxu?