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 uložení metainformací pro adresář, ne 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 #
zobrazuje velikost souborového prostoru použitého zadanými soubory nebo adresáři. Pokud je zadanou cestou adresář, du
shrnuje využití disku každého podadresáře v daném adresáři. . Pokud není zadána žádná cesta, du
ohlásí využití disku aktuálního pracovního adresáře.
Při vyvolání bez jakýchkoli možností du
zobrazuje využití disku daného adresáře a všech jeho podadresářů v bajtech.
Obvykle byste chtěli zobrazit prostor obsazený adresářem ve formátu čitelném pro člověka. Například získat celkovou velikost /var
, spustíte následující příkaz:
Výstup bude vypadat asi takto:
Vysvětlíme příkaz a jeho argumenty:
- Příkaz začíná řetězcem
sudo
, protože většina souborů a adresářů uvnitř Adresář/var
je vlastněn uživatelem root a běžní uživatelé jej nečtou. Pokud vynechátesudo
, příkazdu
vytiskne „du: nelze číst adresář“. -
s
– Zobrazit pouze celkovou velikost zadaného adresáře, nezobrazovat součty velikostí souborů pro podadresáře. -
h
– velikosti tisku ve formátu čitelném pro člověka (h
). -
/var
– cesta k adresáři, který chcete získat velikost.
Co když chcete zobrazit využití disku v podadresářích první úrovně? Máte dvě možnosti. První je použít symbol 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
vytisknout celkový součet všech velikostí:
Dalším způsobem, jak získat zprávu o využití disku v podadresářích první úrovně, je použití možnosti --max-depth
:
Ve výchozím nastavení zobrazuje příkaz du
místo na disku používané adresářem nebo souborem. Chcete-li zjistit zdánlivou velikost adresáře, použijte volbu --apparent-size
. „Zdánlivá velikost“ souboru udává, kolik dat se v souboru skutečně nachází.
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ů. Proto je velikost místa na disku použitém ve zdroji zobrazena pomocí du
(bez --apparent-size
) není stejný jako velikost v cíli.
Příkaz du
lze také kombinovat s jinými příkazy s rourami.
Chcete-li například vytisknout 5 největších adresářů v adresáři /var
, provedli byste rouru výstupu du
k příkazu sort
seřadit adresáře podle jejich velikosti a poté poslat výstup do příkazu head
, který vytiskne pouze prvních 5 adresářů:
Závěr #
V systému Linux můžete získat velikost adresáře pomocí příkazu du
.