Android

Jak uzyskać rozmiar katalogu w systemie Linux

Linux #1: Terminal - Operacje na plikach i katalogach

Linux #1: Terminal - Operacje na plikach i katalogach

Spisu treści:

Anonim

Podczas wyświetlania zawartości katalogu za pomocą polecenia ls można zauważyć, że rozmiar katalogów prawie zawsze wynosi 4096 bajtów (4 KB). Jest to rozmiar miejsca na dysku, które służy do przechowywania meta-informacji dla katalogu, a nie jego zawartości.

Poleceniem, którego chcesz użyć do uzyskania rzeczywistego rozmiaru katalogu, jest du , co oznacza skrót „użycie dysku”.

Uzyskiwanie rozmiaru katalogu

Polecenie du wyświetla ilość miejsca na pliki używanego przez określone pliki lub katalogi. Jeśli podana ścieżka jest katalogiem, du podsumowuje użycie dysku przez każdy podkatalog w tym katalogu. Jeśli nie podano ścieżki, du zgłasza użycie dysku w bieżącym katalogu roboczym.

Po wywołaniu bez żadnych opcji du wyświetla użycie dysku dla danego katalogu i każdego z jego podkatalogów w bajtach.

Zazwyczaj chciałbyś wyświetlić przestrzeń zajmowaną przez katalog w formacie czytelnym dla człowieka. Na przykład, aby uzyskać całkowity rozmiar katalogu /var , uruchom następującą komendę:

sudo du -sh /var

Dane wyjściowe będą wyglądać mniej więcej tak:

85G /var

Wyjaśnijmy polecenie i jego argumenty:

  • Komenda zaczyna się od sudo ponieważ większość plików i katalogów w katalogu /var jest własnością użytkownika root i nie jest możliwa do odczytania przez zwykłych użytkowników. Jeśli pominiesz sudo polecenie du wyświetli „du: nie można odczytać katalogu”. s - Wyświetlaj tylko całkowity rozmiar określonego katalogu, nie wyświetlaj sum wielkości plików dla podkatalogów. h - Drukuj rozmiary w formacie czytelnym dla człowieka ( h ). /var - Ścieżka do katalogu, w którym chcesz uzyskać rozmiar.

Co jeśli chcesz wyświetlić użycie dysku w podkatalogach pierwszego poziomu? Masz dwie opcje. Pierwszym z nich jest użycie symbolu gwiazdki ( * ), jak pokazano poniżej, co oznacza „dopasuj wszystko, co nie zaczyna się kropką ( . )”. Opcja -c mówi du aby wydrukowała dużą sumę wszystkich rozmiarów:

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

Innym sposobem uzyskania raportu na temat użycia dysku przez podkatalogi pierwszego poziomu jest użycie opcji --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

Domyślnie polecenie du pokazuje miejsce na dysku używane przez katalog lub plik. Aby znaleźć pozorny rozmiar katalogu, użyj opcji --apparent-size . „Pozorny rozmiar” pliku to ilość danych faktycznie znajdujących się w pliku.

sudo du -sh --apparent-size /var

Gdy przenosisz katalog za pomocą SCP, Rsync. Lub SFTP, ilość danych przesyłanych przez sieć jest pozornym rozmiarem plików. Dlatego rozmiar miejsca na dysku używanego w źródle, gdy jest wyświetlany z du (bez --apparent-size ), nie jest taki sam, jak rozmiar celu.

Polecenie du można również łączyć z innymi poleceniami za pomocą potoków.

Na przykład, aby wydrukować 5 największych katalogów w katalogu /var , potokuj wyjście du do polecenia sort, aby posortować katalogi według ich rozmiaru, a następnie potokuj wyjście do polecenia head , które wydrukuje tylko 5 najlepszych katalogów:

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

Wniosek

W systemie Linux rozmiar katalogu można uzyskać za pomocą polecenia du .

du terminal terminal