du
- du (disk usage) – standardowy program systemów Unix/Linux z pakietu coreutils służący do obliczania, ile miejsca na dysku zajmują pliki oraz całe drzewa katalogów.
- Przydatny do identyfikacji „pożeraczy miejsca”, monitorowania backupów i tworzenia skryptów porządkujących.
- Dostępny domyślnie w większości dystrybucji Linuksa, macOS, BSD oraz w środowiskach POSIX.
Składnia
Dział zatytułowany „Składnia”du [opcje] [plik | katalog ...]
- Bez argumentów raportuje rozmiar bieżącego katalogu i jego poddrzew w 1‑kilobajtowych blokach.
- Do analizy całego systemu używaj sudo, aby uniknąć błędów uprawnień.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
-h , --human-readable | Wyświetla rozmiary w czytelnych jednostkach (K, M, G). |
--si | Jednostki dziesiętne (kB/MB/GB zamiast KiB/MiB/GiB). |
-s , --summarize | Tylko podsumowanie łącznego rozmiaru argumentu. |
-c , --total | Dodaje wiersz sumaryczny z łączną zajętością. |
-d <N> , --max-depth=<N> | Ogranicza głębokość rekurencji do N poziomów. |
-a , --all | Wyświetla rozmiar każdego pliku, nie tylko katalogów. |
-x , --one-file-system | Nie wchodzi w podmontowane systemy plików. |
-B <ROZMIAR> | Ustawia rozmiar bloku (np. 1M , 512 ). |
--apparent-size | Pokazuje logiczny rozmiar plików zamiast bloków dysku. |
--exclude=<wzorzec> | Pomija pliki/katalogi pasujące do glob‑wzorca. |
--time , --time=<FORMAT> | Dodaje czas ostatniej modyfikacji każdego wpisu. |
--inodes | Raportuje liczbę i‑node’ów zamiast bajtów. |
-L , --dereference | Podąża za linkami symbolicznymi. |
-S , --separate-dirs | Nie dodaje rozmiarów plików z podkatalogów do rodzica. |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1. Łączna zajętość każdego elementu w bieżącym katalogudu -sh *
# 2. Analiza pierwszego poziomu /var z sumą końcowądu -h --max-depth=1 -c /var
# 3. Znalezienie 10 największych plików w /homedu -aBM /home | sort -n | tail -10
# 4. Pominięcie plików .log i raport i-node’ówdu --exclude='*.log' --inodes -h /var/log
- Rozbieżności z
df
:df
mierzy wolne miejsce na poziomie całego systemu plików, podczas gdydu
zlicza pliki – nie uwzględnia rezerw superusera, sparse files czy kompresji. - Uprawnienia: Brak odczytu skutkuje ostrzeżeniami i pominięciem katalogów; uruchom z
sudo
lub dodaj2>/dev/null
. - Sparse files: Domyślnie
du
raportuje faktycznie użyte bloki;--apparent-size
pokaże pełny logiczny rozmiar. - Wydajność: Przy dużych strukturach warto ograniczyć głębokość (
--max-depth
) lub równolegle użyćncdu
(wizualny interfejs ncurses). - Systemy plików: Opcja
-x
zapobiega zliczaniu zamontowanych backupów (np. w/mnt/backup
), co przyśpiesza skan.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
du: cannot access 'folder': Permission denied | Brak praw do odczytu | Uruchom z sudo lub napraw ACL/permissions. |
du: file changed as we read it | Plik modyfikowany w trakcie skanowania | Zignoruj lub zatrzymaj procesy zapisujące; powtórz pomiar. |
Długi czas działania | Wielkie drzewa katalogów na wielu dyskach | Użyj --max-depth , wyklucz jasne katalogi --exclude , rozważ ncdu . |
Wyniki niespodziewanie małe | Pliki rzadkie (sparse), kompresja, deduplikacja | Dodaj --apparent-size aby zobaczyć logiczny rozmiar. |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man du – oficjalna dokumentacja.
- GNU coreutils – du – szczegółowy manual.
- ncdu – interaktywna alternatywa do analizy zajętości.