Polecenie du — co to jest?
du (skrót od ang. disk usage — uż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.

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
| Opcja | Znaczenie |
|---|---|
-h | human-readable — rozmiary w MB/GB/TB |
-s | summarize — tylko suma, bez listy podkatalogów |
-a | all — uwzględnia także pliki, nie tylko katalogi |
-c | total — dodaje wiersz „suma" na końcu |
-d N lub --max-depth=N | ogranicza zagłębienie do N poziomów |
-x | pozostań w bieżącym systemie plików (nie wchodź na inne partycje) |
--apparent-size | rozmiar plików (a nie zajętość bloków) |
-b | wynik w bajtach |
-k | wynik w kilobajtach |
-m | wynik w megabajtach |
-t SIZE | wyświetl tylko elementy większe niż SIZE |
--time | dodaj 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:
| Cecha | du | df |
|---|---|---|
| Co pokazuje | rozmiar plików i katalogów | wolne miejsce systemów plików (partycji) |
| Punkt widzenia | od dołu (od plików) | od góry (od partycji) |
| Co liczy | sumuje rzeczywiste pliki | korzysta z metadanych systemu plików |
| Skala | konkretny katalog | cał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:
df -h— sprawdź, która partycja się zapełnia,du -sh /*— znajdź, co konkretnie zajmuje miejsce na tej partycji,du -sh /sciezka/*— zejdź głębiej do problematycznego katalogu,- 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 (
dunie widzi, aledfliczy), - 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:
| Polecenie | Pokazuje |
|---|---|
du | rozmiar katalogów i plików |
df | wolne miejsce systemów plików (partycji) |
free | wolną/zajętą pamięć RAM i swap |
top / htop | obciążenie procesora i pamięci |
ps | uruchomione procesy |
lsblk | strukturę dysków i partycji |
fdisk -l | tablicę partycji |
mount | aktualne punkty montowania |
fsck | sprawdzenie 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!
du≠df—dupokazuje rozmiar katalogów,dfwolne miejsce partycji. Najważniejsza pułapka egzaminacyjna.du≠ls—dusumuje rozmiar (rekursywnie),lslistuje nazwy plików (i ich rozmiar pojedynczo).du≠cp—cpto kopiowanie plików,duto mierzenie rozmiaru.du≠rm—duto informacja,rmto usuwanie.dunie usuwa nic!du -h≠du -H—-hużywa jednostek IEC (1 GB = 1024 MB),-HSI (1 GB = 1000 MB).dubez-smoże być długie — bez-spokazuje 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żyjdf -h /.du --apparent-sizeróżni się od domyślnego — domyślnieduliczy zajęte bloki,--apparent-sizerzeczywisty rozmiar plików (bez fragmentacji bloków).dunie widzi otwartych usuniętych plików — proces może trzymać usunięty plik;dfzobaczy zajętość,dunie. Sprawdź:sudo lsof | grep deleted.du -xzapobiega wchodzeniu na inne partycje — bez tegodu /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.