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átesudo
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ář.