Android

Jak získat velikost adresáře v Linuxu

SAP HANA infrastructure automation with Terraform and Ansible | Azure Friday

SAP HANA infrastructure automation with Terraform and Ansible | Azure Friday

Obsah:

Anonim

Při výpisu obsahu adresáře pomocí příkazu ls jste si možná všimli, že velikost adresářů je téměř vždy 4096 bajtů (4 KB). To je velikost místa na disku, které se používá k ukládání metadat pro adresář, nikoli to, co obsahuje.

Příkaz, který chcete použít k získání skutečné velikosti adresáře, je du , což je zkratka pro „využití disku“.

Získání velikosti adresáře

Příkaz du zobrazuje velikost souborového prostoru použitého zadaný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 ohlásí využití disku v aktuálním pracovním adresáři.

Při vyvolání bez jakýchkoli možností du zobrazí využití disku daného adresáře a každého z jeho podadresářů v bajtech.

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

sudo du -sh /var

Výstup bude vypadat asi takto:

85G /var

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

  • Příkaz začíná sudo protože většinu souborů a adresářů v adresáři /var vlastní uživatel root a běžní uživatelé jej nemohou číst. Pokud vynecháte sudo příkaz du vytiskne „du: nelze číst adresář“. s - Zobrazí pouze celkovou velikost zadaného adresáře, nezobrazí součty velikosti souborů pro podadresáře. h - Velikost tisku v lidsky čitelném formátu ( 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á „porovnat vše, co nezačíná tečkou ( . )“. Možnost -c říká du aby vytiskla 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 v podadresářích první úrovně, je použít volbu --max-depth :

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í příkaz du zobrazuje místo na disku používané adresářem nebo souborem. Chcete-li najít zjevnou velikost adresáře, použijte volbu --apparent-size . „Zdánlivá velikost“ souboru je to, kolik dat je v souboru skutečně.

sudo du -sh --apparent-size /var

Při přenosu adresáře přes SCP, Rsync. Nebo SFTP je objem dat přenesených po síti zdánlivou velikostí souborů. To je důvod, proč velikost místa na disku použitého na zdroji, když je zobrazena s du (bez --apparent-size ), není stejná jako velikost v cíli.

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

Chcete-li například vytisknout 5 největších adresářů v adresáři /var , dáte výstup du do příkazu sort k seřazení adresářů podle jejich velikosti a pak do výstupu příkaz head který vytiskne pouze 5 nejlepších 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 systému Linux můžete pomocí příkazu du získat velikost adresáře.

terminálový disk