du

Słownik kwalifikacji INF.02 - Administracja i eksploatacja systemów komputerowych, urządzeń peryferyjnych i lokalnych sieci komputerowych

Polecenie du — co to jest?

du (skrót od ang. disk usageużycie dysku) to polecenie systemów Linux/Unix służące do sprawdzania, ile miejsca na dysku zajmują pliki i katalogi. W przeciwieństwie do polecenia df, które pokazuje stan całego systemu plików (partycji), du analizuje konkretne katalogi i pliki — zaczynając od podanej ścieżki i rekursywnie sumując rozmiary wszystkich elementów wewnątrz.

Infografika: polecenie du (disk usage) w Linuksie do sprawdzania rozmiaru katalogów i plików, najczęstsza forma du -sh, sortowanie po rozmiarze, porównanie z df oraz typowy scenariusz znajdowania zajmujących miejsce katalogów

To podstawowe narzędzie administratora — odpowiada na pytanie „co zajmuje moje miejsce na dysku?". Klasyczny temat egzaminacyjny w kwalifikacji INF.02 (Administracja i eksploatacja systemów komputerowych) — pytania CKE sprawdzają znajomość polecenia jako narzędzia do sprawdzania wielkości katalogu oraz odróżnianie go od innych poleceń Linuksa (ps, cp, rm).

Pytanie egzaminacyjne — co robi du?

„Jakie polecenie w systemie Linux jest używane do sprawdzania wielkości katalogu?"

Poprawna odpowiedź: du

Niepoprawne (dystraktory):

  • cp — kopiuje pliki
  • ps — wyświetla procesy (więcej w ps i top w Linuksie)
  • rm — usuwa pliki lub katalogi
  • ls — wyświetla zawartość katalogu (nazwy, nie rozmiar sumaryczny)
  • df — sprawdza wolne miejsce na systemach plików, nie katalogach (więcej w df)

Podstawowa składnia

du [opcje] [katalog_lub_plik]

Najprostsze wywołanie

du /home/jan

Wyświetli rozmiar każdego podkatalogu w /home/jan rekursywnie, w blokach 1K (mało czytelne).

W praktyce najczęściej używa się -sh

du -sh /home/jan
# Wynik: 2,3G   /home/jan

Pokazuje tylko jeden, sumaryczny rozmiar katalogu, w czytelnej formie.

Najważniejsze opcje du

OpcjaZnaczenie
-hhuman-readable — rozmiary w MB/GB/TB
-ssummarize — tylko suma, bez listy podkatalogów
-aall — uwzględnia także pliki, nie tylko katalogi
-ctotal — dodaje wiersz „suma" na końcu
-d N lub --max-depth=Nogranicza zagłębienie do N poziomów
-xpozostań w bieżącym systemie plików (nie wchodź na inne partycje)
--apparent-sizerozmiar plików (a nie zajętość bloków)
-bwynik w bajtach
-kwynik w kilobajtach
-mwynik w megabajtach
-t SIZEwyświetl tylko elementy większe niż SIZE
--timedodaj datę modyfikacji

Najpopularniejsza kombinacja: -sh

du -sh /home/jan        # rozmiar pojedynczego katalogu
du -sh /home/*          # rozmiar wszystkich katalogów w /home
du -sh .                # rozmiar bieżącego katalogu
du -sh *                # rozmiar wszystkich elementów bieżącego katalogu

To podstawowy zestaw opcji, który warto zapamiętać.

Typowe zastosowania

Znajdowanie największych katalogów

du -h --max-depth=1 /var

Pokaże rozmiar każdego podkatalogu pierwszego poziomu w /var:

12G    /var/log
850M   /var/cache
230M   /var/lib
1,2G   /var/spool
180M   /var/tmp
14G    /var          ← suma

Sortowanie od największego

du -sh /home/* | sort -h

Polecenie sort -h (też z -h) sortuje liczbowo z rozumieniem jednostek (MB < GB < TB):

145M   /home/temp
580M   /home/anna
2,3G   /home/jan
12G    /home/projekty

TOP 10 największych katalogów

du -h --max-depth=2 /home | sort -h | tail -10

Pokaże 10 największych katalogów do 2 poziomu w /home — bardzo przydatne podczas sprzątania dysku.

Znalezienie największych plików (nie tylko katalogów)

du -ah /home | sort -h | tail -20

Opcja -a dodaje pliki do wyniku. To pokaże 20 największych plików i katalogów w /home.

Pomijanie innych partycji

du -sh -x /

Opcja -x zapobiega „wchodzeniu" na inne systemy plików (np. zamontowane dyski sieciowe lub USB) — bardzo przydatne dla /.

Ignorowanie pewnych katalogów

du -sh --exclude='.cache' --exclude='node_modules' /home/jan

du vs df — kluczowa różnica

To bardzo częsta pułapka — łatwo pomylić te dwa polecenia, ale działają z różnego kierunku:

Cechadudf
Co pokazujerozmiar plików i katalogówwolne miejsce systemów plików (partycji)
Punkt widzeniaod dołu (od plików)od góry (od partycji)
Co liczysumuje rzeczywiste plikikorzysta z metadanych systemu plików
Skalakonkretny katalogcała partycja
Szybkośćwolniejsze (musi przejść drzewo)natychmiastowe
Typowe pytanie„co zajmuje moje miejsce?"„ile miejsca zostało?"

Najczęstsza kolejność użycia

W praktyce administratorzy używają obu razem:

  1. df -h — sprawdź, która partycja się zapełnia,
  2. du -sh /* — znajdź, co konkretnie zajmuje miejsce na tej partycji,
  3. du -sh /sciezka/* — zejdź głębiej do problematycznego katalogu,
  4. Posprzątaj największe katalogi.

Więcej o df w haśle df.

Dlaczego du i df czasem dają różne wyniki?

Czasami du na całej partycji pokazuje mniej miejsca niż df. Powody:

  • otwarte usunięte pliki — proces nadal trzyma plik otwarty, mimo że został usunięty (du nie widzi, ale df liczy),
  • uszkodzone bloki zarezerwowane przez system plików,
  • rezerwacja roota — domyślnie 5% partycji ext4 jest zarezerwowane dla użytkownika root,
  • różnice w sposobie liczenia bloków vs rzeczywistego rozmiaru plików.

W razie podejrzeń o „zaginione" miejsce sprawdza się otwarte usunięte pliki:

sudo lsof | grep deleted

Praktyczne przykłady — pytania egzaminacyjne

Sprawdzenie rozmiaru katalogu domowego

du -sh /home/jan
# 2,3G   /home/jan

Sprawdzenie rozmiaru bieżącego katalogu

du -sh .

Znalezienie 10 największych katalogów na partycji

sudo du -ah / 2>/dev/null | sort -h | tail -10

Sprawdzenie rozmiaru logów systemowych

sudo du -sh /var/log
sudo du -sh /var/log/*    # rozbicie po plikach

Czyszczenie logów systemowych

Po zlokalizowaniu największych logów można je wyczyścić:

sudo journalctl --vacuum-size=100M  # ogranicz logi do 100MB
sudo logrotate -f /etc/logrotate.conf

Jak zwolnić miejsce na dysku bez utraty danych

Pytanie CKE, które pojawia się też w hasłach du i df:

„Aby uzyskać więcej wolnego miejsca na dysku bez tracenia danych, co należy zrobić?"

Najczęstsza odpowiedź: kompresja danych — w Windows na poziomie systemu plików NTFS (kompresja folderów). Pełne omówienie wszystkich sposobów (kompresja, usunięcie zbędnych plików, przeniesienie, czyszczenie systemu) jest w haśle df — sekcja „Jak zwolnić miejsce na dysku bez utraty danych".

du w tym kontekście to narzędzie diagnostyczne — pozwala znaleźć co konkretnie zwalniać:

# 1. Znajdź największe katalogi:
du -sh /var/* | sort -h | tail -5

# 2. Sprawdź, co w największym:
du -sh /var/log/* | sort -h | tail -5

# 3. Wyczyść / skompresuj największe:
sudo gzip /var/log/syslog.1   # kompresja logu
sudo rm /var/cache/apt/archives/*.deb  # cache apt

du a inne polecenia diagnostyczne

du należy do grupy poleceń informacyjnych Linuksa:

PoleceniePokazuje
durozmiar katalogów i plików
dfwolne miejsce systemów plików (partycji)
freewolną/zajętą pamięć RAM i swap
top / htopobciążenie procesora i pamięci
psuruchomione procesy
lsblkstrukturę dysków i partycji
fdisk -ltablicę partycji
mountaktualne punkty montowania
fscksprawdzenie i naprawa systemu plików

Pełna tabela w hasłach ps i top w Linuksie i fsck.

du w Windows

W systemie Windows nie ma bezpośredniego odpowiednika du, ale podobne funkcje pełnią:

  • eksplorator plików — prawym przyciskiem na katalog → Właściwości → Rozmiar,
  • PowerShell:
    powershell Get-ChildItem C:\folder -Recurse | Measure-Object -Property Length -Sum
  • WizTree, TreeSize, WinDirStat — graficzne narzędzia analizy zajętości,
  • polecenie dir /s C:\folder — pokazuje sumę plików w katalogu i podkatalogach.

Praktyczne wskazówki

Pełne sprzątanie partycji systemowej

# 1. Sprawdź ogólny stan:
df -h

# 2. Znajdź TOP 5 katalogów w /:
sudo du -sh /* 2>/dev/null | sort -h | tail -5

# 3. Zejdź głębiej (np. /var):
sudo du -sh /var/* | sort -h | tail -5

# 4. Wyczyść typowe miejsca:
sudo apt clean              # cache pakietów Debian/Ubuntu
sudo apt autoremove         # nieużywane pakiety
sudo journalctl --vacuum-time=7d  # logi starsze niż 7 dni
rm -rf ~/.cache/*           # cache użytkownika

Najlepsze opcje na różne potrzeby

  • „ile zajmuje katalog?"du -sh /sciezka
  • „co największe w katalogu?"du -sh /sciezka/* | sort -h
  • „TOP 10 katalogów na partycji?"du -ah / 2>/dev/null | sort -h | tail -10
  • „rozmiar bieżącego katalogu?"du -sh .
  • „czy nie wchodzić na zamontowane dyski?" → dodaj -x

Skrót w .bashrc

Można dodać alias dla szybszego użycia:

alias top10='du -ah . 2>/dev/null | sort -h | tail -10'

Wtedy wystarczy wpisać top10, by zobaczyć 10 największych plików/katalogów w bieżącym katalogu.

Powiązane tematy

  • df — komplement do du; sprawdzanie wolnego miejsca na partycjach.
  • fsck — sprawdzanie i naprawa systemu plików.
  • ps i top w Linuksie — monitorowanie procesów i lista poleceń diagnostycznych.
  • chmod Linux — zmiana uprawnień plików.
  • ls -lh — wyświetlanie rozmiaru pojedynczych plików w katalogu.
  • find ... -size +XM — wyszukiwanie plików o określonym rozmiarze.
  • NTFS — system plików Windows wspierający kompresję (sposób zwolnienia miejsca).

Częste pomyłki — nie myl tego!

  • dudfdu pokazuje rozmiar katalogów, df wolne miejsce partycji. Najważniejsza pułapka egzaminacyjna.
  • dulsdu sumuje rozmiar (rekursywnie), ls listuje nazwy plików (i ich rozmiar pojedynczo).
  • ducpcp to kopiowanie plików, du to mierzenie rozmiaru.
  • durmdu to informacja, rm to usuwanie. du nie usuwa nic!
  • du -hdu -H-h używa jednostek IEC (1 GB = 1024 MB), -H SI (1 GB = 1000 MB).
  • du bez -s może być długie — bez -s pokazuje wszystkie podkatalogi rekursywnie, co dla dużego katalogu daje ogromny wynik.
  • du -sh / pokazuje rozmiar wszystkich plików, nie wolne miejsce — żeby sprawdzić wolne miejsce, użyj df -h /.
  • du --apparent-size różni się od domyślnego — domyślnie du liczy zajęte bloki, --apparent-size rzeczywisty rozmiar plików (bez fragmentacji bloków).
  • du nie widzi otwartych usuniętych plików — proces może trzymać usunięty plik; df zobaczy zajętość, du nie. Sprawdź: sudo lsof | grep deleted.
  • du -x zapobiega wchodzeniu na inne partycje — bez tego du / może liczyć też /mnt, /media, dyski sieciowe.

Najważniejsze do zapamiętania

du (disk usage) to polecenie Linuksa do sprawdzania rozmiaru katalogów i plików. Klasyczne wywołania:

du -sh /home/jan         # rozmiar katalogu sumarycznie
du -sh /home/*           # rozmiary wszystkich katalogów w /home
du -h --max-depth=1 /    # pierwszy poziom partycji /
du -sh * | sort -h       # posortowane od najmniejszego

Różnica du vs df: du pokazuje rozmiar konkretnych katalogów i plików (od dołu), df pokazuje wolne miejsce całych systemów plików/partycji (od góry). W praktyce używa się obu razem: najpierw df znajduje pełną partycję, potem du lokalizuje, co ją zapełnia.

W pytaniach egzaminacyjnych odpowiedzią na „sprawdzenie wielkości katalogu w Linuksie" jest zawsze du — NIE cp, ps, rm, ls.

du to polecenie informacyjne — NIE usuwa, nie kopiuje, nie naprawia; tylko mierzy rozmiar.