Przejdź do głównej zawartości

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.

Okno terminala
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ń.

ParametrOpis
-h, --human-readableWyświetla rozmiary w czytelnych jednostkach (K, M, G).
--siJednostki dziesiętne (kB/MB/GB zamiast KiB/MiB/GiB).
-s, --summarizeTylko podsumowanie łącznego rozmiaru argumentu.
-c, --totalDodaje wiersz sumaryczny z łączną zajętością.
-d <N>, --max-depth=<N>Ogranicza głębokość rekurencji do N poziomów.
-a, --allWyświetla rozmiar każdego pliku, nie tylko katalogów.
-x, --one-file-systemNie wchodzi w podmontowane systemy plików.
-B <ROZMIAR>Ustawia rozmiar bloku (np. 1M, 512).
--apparent-sizePokazuje 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.
--inodesRaportuje liczbę i‑node’ów zamiast bajtów.
-L, --dereferencePodąża za linkami symbolicznymi.
-S, --separate-dirsNie dodaje rozmiarów plików z podkatalogów do rodzica.

Okno terminala
# 1. Łączna zajętość każdego elementu w bieżącym katalogu
du -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 /home
du -aBM /home | sort -n | tail -10
# 4. Pominięcie plików .log i raport i-node’ów
du --exclude='*.log' --inodes -h /var/log

  • Rozbieżności z df: df mierzy wolne miejsce na poziomie całego systemu plików, podczas gdy du 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 dodaj 2>/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.

Błąd / KomunikatPrzyczynaRozwiązanie
du: cannot access 'folder': Permission deniedBrak praw do odczytuUruchom z sudo lub napraw ACL/permissions.
du: file changed as we read itPlik modyfikowany w trakcie skanowaniaZignoruj lub zatrzymaj procesy zapisujące; powtórz pomiar.
Długi czas działaniaWielkie drzewa katalogów na wielu dyskachUżyj --max-depth, wyklucz jasne katalogi --exclude, rozważ ncdu.
Wyniki niespodziewanie małePliki rzadkie (sparse), kompresja, deduplikacjaDodaj --apparent-size aby zobaczyć logiczny rozmiar.