Jak uzyskać rozmiar katalogu w Linux

Jak uzyskać rozmiar katalogu w Linux
Znajomość wielkości katalogu w Linux nie jest tak prosta, jak się wydaje. Polecenie „LS -s” wyświetli listę plików i podwozie z ich rozmiarami. Jednak rozmiary (około 4096 bajtów) podane dla katalogów nie są używaniem dysku. Rozmiar widoczny dla katalogu to rozmiar meta-data katalogu.

Metadane to dane o danych. Widoczny rozmiar to rozmiar danych, który ma znaczenie dla zwykłego użytkownika komputera. Treść (tekst) liter, obrazów, filmów, filmów itp., stanowić pozorny rozmiar. Dane te nie są dowolnie przechowywane w komputerze. Dane pozornie wielkości muszą być przechowywane w sposób kontrolny. Musi być zidentyfikowalny. To musi być kompletne. Istnieją inne wymagania. Potrzebne są dodatkowe dane, aby osiągnąć te dodatkowe wymagania, a te dodatkowe dane to meta-data.

Pamiętaj, że w tomie jest tylko jeden katalog. Reszta to subkwestie. Katalog główny powoduje podlewanie, które powodują, że spadają inne podwozie podwodne. Jednak podwodnicy są zwykle nazywane po prostu katalogiczne. I tak jest tylko jedno drzewo katalogu.

Tak więc „LS -s” nie jest przydatne do uzyskania wielkości katalogu. Które polecenie jest wówczas przydatne? - Polecenie du. „Du” oznacza użycie dysku. Wydrukuje zużycie dysku w katalogu.

W tym artykule wyjaśniono różne funkcje polecenia DU w Linux, która zawiera różne programy programisty do poznania rozmiarów katalogów i ich podwodnych. Bash to powłoka używana do próbek kodu tego artykułu.

Treść artykułu

  • DU bez opcji lub argumentu
  • Rozmiar innych katalogów
  • pozorna wielkość
  • Polecenie sudo
  • Z wyłączeniem wpisów według wielkości
  • exclude = wzór
  • Wniosek

DU bez opcji lub argumentu

Obecny katalog roboczy to katalog, w którym obecnie pracuje użytkownik. Poniższy normalnie pokazuje bieżący katalog roboczy. Pisanie du bez żadnej opcji i argumentu, jak więc:

du

a następnie naciśnięcie klawisza ENTER wyświetli użycie dysku dla wszystkich sub-dreaktorii bieżącego katalogu roboczego. Wyświetli te informacje dla podrestu bieżącego katalogu roboczego. Kropka na wyświetlaczu reprezentuje bieżący katalog roboczy.

Każda ścieżka podprzestrzeni jest reprezentowana w linii, na wyświetlaczu. Każda linia zaczyna się od wielkości katalogu (który jest nazwą na ścieżce). Wyświetlacz może być coś w stylu:

8 ./dir1/dir2/dir3/dir4
12 ./dir1/dir2/dir3
16 ./Dir1/Dir2
20 ./Dir1

Zauważ, że nie jest jasne, czy rozmiar jest w bajtach, kilobajtach, megabajtach czy gigabajtach. Kilobytes symbolu, k oznacza 1024 bajty; Megabajty symbolu, m oznacza 1 048 576 bajtów; Gigabajty symbolu, g oznacza 1 073 741 824 bajtów. Aby wielokrotności należy wskazać, należy użyć opcji -H (przełącznika), w następujący sposób:

du -h

Wyświetlacz wyglądałby tak:

8.0k ./dir1/dir2/dir3/dir4
12K ./dir1/dir2/dir3
16k ./Dir1/Dir2
20K ./Dir1

Gdy używana jest opcja -h, rozmiary są w czytelnej formie.

UWAGA: W przypadku opcji -wszystkie polecenie DU podaje również użycie dysku dla plików; Jednak użycie dysku dla plików nie zostanie rozwiązane w tym artykule.

Rozmiar innych katalogów

Typowa bezwzględna ścieżka dla objętości Linuksa jest następująca:

/home/john/dirone/dirtwo/dirthree/dirfour

Pierwszy / jest głównym katalogiem. Ten katalog ma natychmiastowe podwodne, w tym katalog domowy. Directory Home ma katalog użytkownika. Jeśli nazwa użytkownika to John, może on nazwać katalog użytkownika, John. Katalog użytkownika jest identyfikowany przez ~. Użytkownik może więc użyć polecenia „CD ~”, aby dotrzeć do swojego katalogu z dowolnego katalogu. Dirone to katalog utworzony przez użytkownika. Użytkownik może również tworzyć inne katalogi na tym poziomie. Dirtwo, DirThree i Dirfour to podwozie do ich poprzednich katalogów, stworzonych przez użytkownika.

Użytkownik może znać rozmiar dowolnego innego katalogu i jego podokrestancje (pod-drzewo) z dowolnego katalogu, omijając bezwzględną ścieżkę jako argument. Na przykład, jeśli potrzebne jest użycie dysku,

/Home/John/Dirone/Dirtwo

wtedy poleceniem byłoby:

du -h/home/John/dirone/dirtwo

Lub

du -h ~/dirone/dirtwo

gdzie ~ reprezentuje katalog użytkownika.

Aby użyć ścieżki względnej, użytkownik musi już znajdować się w odpowiednim katalogu nadrzędnym. Na przykład, jeśli wyświetla się monit,

John@host: ~/dirone $

Oznacza to, że użytkownik jest w katalogu/Home/John/Dirone, wówczas następujące polecenie da ten sam wynik, co powyższe polecenie:

du -h dirtwo

Ścieżki nadal byłyby względne. Aby wyświetlić te same informacje dla bieżącego katalogu, nie użyj żadnych argumentów lub użyj kropki.

Ten schemat można wykorzystać do uzyskania wielkości tylko jednego katalogu, ostatniego na ścieżce (poprzedzonej ścieżką). Możliwe jest uzyskanie rozmiaru katalogu na środku ścieżki - patrz „Exclude = wzór” poniżej.

Łączna suma

Można wyprodukować wielki całkowity rozmiar wszystkich zaangażowanych katalogów. W powyższej sytuacji poleceniem byłoby:

Du -h -Total

pozorna wielkość

Widoczny rozmiar jest zwykle mniejszy niż użycie dysku. Jednak w niektórych sytuacjach pozorny rozmiar jest większy niż użycie dysku; Powód - patrz później. Poleceniem uzyskania pozornych rozmiarów dla powyższej ścieżki względnej byłoby:

du -h -apparent wielkości brud

Maksymalna głębokość

Z -max -Depth = 0, DU drukuje rozmiar tylko bieżącego katalogu roboczego; Z DU-Max-Depth = 1, DU drukuje rozmiar obecnego katalogu roboczego i rozmiarów wszystkich jego pierwszego poziomu podlewającego; Z-Max-Depth = 2, DU drukuje rozmiar obecnego katalogu roboczego i rozmiary wszystkich jego pierwszego poziomu podwodne i wszystkich jego podwodnych drugiego poziomu; Z-Max-Depth = 3, DU drukuje rozmiar obecnego katalogu roboczego i wszystkich jego pierwszego poziomu podlewaństwa i wszystkich jego podwodniników drugiego poziomu i wszystkich jego podwodnic trzeciego poziomu; To trwa wraz ze wzrostem wartości maksymalnej. Przykładem jego użycia jest:

Du -h - -Max -Depth = 2

Polecenie sudo

Jednym z katalogów z własnymi subrektorami w katalogu głównym jest var. Jeśli typy użytkowników

du -h /var

i wchodzą naciski, zda sobie sprawę, że pozwolenia jest odrzucane na niektóre katalogi. Oznacza to, że nie może znać rozmiarów niektórych katalogów. Zezwolenie jest odrzucane, ponieważ użytkownik nie jest superuser. Superuser ma zaszczyt zobaczyć rozmiary (wykorzystanie dysku) tych katalogów. Tak więc, aby użytkownik zdobył ten przywilej, musi używać polecenia Sudo w następujący sposób:

sudo du -h /var

Jeśli powłoka poprosi użytkownika o jego hasło, użytkownik musi wpisać hasło i naciskać Enter. Za pomocą polecenia Sudo zwykły użytkownik (programista) może zobaczyć rozmiary wszystkich katalogów w katalogu Var i podobnych katalogach.

Z wyłączeniem wpisów według wielkości

Opcja „-Threshold = rozmiar” nie zezwoli na katalogi listy, których rozmiary są mniejsze niż rozmiar. Dla ścieżki,

/home/john/dirone/dirtwo/dirthree/dirfour

z monitem na „John@host: ~ $”

du -h -Thhreshold = 12K Dirone

gdzie 12k oznacza 12 kilobajtów, nie wyświetli linii dla żadnego katalogu, którego użycie dysku jest mniejsze niż 12k.

-exclude = wzór

Ta opcja i wartość mogą pominąć linie katalogu, których użytkownik nie chce na liście.

Pominąć linię ostatniego katalogu, Dirfour of the Path

/home/john/dirone/dirtwo/dirthree/dirfour

Poleceniem powinno być:

du -h --exclude = dirone/dirtwo/dirthree/dirfour dirone

Rezultat będzie coś w stylu,

4.0K Dirone/Dirtwo/Dirthree
8.0K Dirone/Dirtwo
12K Dirone

Uwaga: rozmiary nie obejmowały wielkości katalogu ostatniego poziomu (Dirfour) ścieżki.

Aby mieć tylko rozmiary górnych katalogów głębokości i ich podrzędnych, nie mają opcji niższych głębokich katalogów. Więc z poleceniem,

du -h --exclude = dirone/dirtwo/dirone dirone
Wyjście będzie coś w rodzaju,
4.0K Dirone/Dirtwo
8K Dirone

Uwaga: rozmiary wykluczyły rozmiary dolnych katalogów dźwigni drzewa.

Rozważ ponownie, absolutny link,

/home/john/dirone/dirtwo/dirthree/dirfour

Poniższe polecenie uzyska użycie dysku tylko z katalogu Dirtwo, który jest katalogiem na ścieżce. Polecenie to:

du -h --exclude =/home/John/dirone/dirtwo/*/home/john/dirone/dirtwo

Argument ma wszystkie poprzednie katalogi do tego, co dotyczy. Wartość wykluczenia ma wszystkie poprzednie katalogi, kończące się *, tuż po tym, o którym mowa. * oznacza wszystkie podwozie na tym poziomie (i ich podrzędne). Rezultat będzie coś w stylu,

5.0k/home/John/Dirone/Dirtwo

Wniosek

Próba poznania wielkości katalogu z poleceniem „LS -s” jest mylące. Dzięki temu uzyskuje się tylko meta-data katalogu. Aby poznać użycie dysku w katalogu, należy użyć polecenia DU. W przypadku użycia z opcją -h rozmiary katalogów są czytelne. Widoczny rozmiar można uzyskać za pomocą opcji pozornej wielkości. Bez żadnej opcji i argumentu polecenie DU wyświetla po prostu rozmiary wszystkich podkatalogów bieżącego katalogu, w tym rozmiaru bieżącego katalogu. Argument „du” jest ścieżką, która może zacząć od korzenia. Opcje i niektóre z ich wartości decydują dokładnie, które katalogi są adresowane. Polecenie sudo domyślnie daje zwykłe uprawnienia superuseru użytkownika.