Computergebruikers verzamelen in de loop der jaren veel gegevens, of het nu gaat om belangrijke persoonlijke projecten, digitale foto's, video's, muziek of codebestanden.
Hoewel harde schijven tegenwoordig vrij groot zijn, moet je soms een stapje terug doen en inventariseren wat je eigenlijk op je schijven bewaart.
De klassieke Linux opdrachten df en du zijn snelle manieren om inzicht te krijgen in wat er op je schijf staat, en ze geven een betrouwbaar rapport dat gemakkelijk te analyseren en te verwerken is.
Dat is geweldig voor scripts en verwerking, maar het menselijk brein reageert niet altijd goed op honderden regels ruwe gegevens.
De ncdu opdracht heeft als doel een interactief rapport te geven over de ruimte die je gebruikt op jouw harde schijf.
In openSUSE Leap 15.4 installeer je ncdu via de standaard softwarebronnen met de opdracht:
dany@pindabook:~> sudo zypper install ncdu
[sudo] wachtwoord voor root:
Gegevens van opslagruimte laden...
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...
Het volgende NIEUWE pakket zal worden geïnstalleerd:
ncdu
1 nieuw te installeren pakket.
Totale downloadgrootte: 55,7 KiB. Reeds in de cache: 0 B. Na de bewerking zal aanvullend 96,9 KiB worden gebruikt.
Doorgaan? [j/n/v/...? alle opties tonen] (j):
pakket ncdu-1.16-bp154.1.19.x86_64 wordt opgehaald (1/1), 55,7 KiB ( 96,9 KiB uitgepakt)
Ophalen: ncdu-1.16-bp154.1.19.x86_64.rpm ......................................................................................[gereed]
Controleren op conflicten tussen bestanden: ...................................................................................[gereed]
(1/1) Installeren van: ncdu-1.16-bp154.1.19.x86_64 ............................................................................[gereed]
De interface van ncdu gebruikt de ncurses bibliotheek, die van je terminalvenster een rudimentaire grafische toepassing maakt, zodat je de pijltjestoetsen kunt gebruiken om door visuele menu's te navigeren.
Dat is een van de belangrijkste troeven van ncdu, en wat het onderscheidt van de oorspronkelijke du opdracht.
Om de volledige inhoud van een map, standaard de huidige map, weer te geven:
dany@pindabook:~> ncdu
ncdu 1.16 ~ Use the arrow keys to navigate, press ? for help
--- /home/dany -------------------------------------------------------
212,9 MiB [##########] /.cache
26,1 MiB [# ] /.mozilla
11,3 MiB [ ] /.local
1,8 MiB [ ] /Downloads
796,0 KiB [ ] /.config
76,0 KiB [ ] /.pki
16,0 KiB [ ] /.kde4
16,0 KiB [ ] .bash_history
12,0 KiB [ ] /.ssh
8,0 KiB [ ] /Bureaublad
8,0 KiB [ ] /.fonts
e 4,0 KiB [ ] /bin
4,0 KiB [ ] /.pinda
4,0 KiB [ ] .xim.template
Total disk usage: 253,1 MiB Apparent size: 242,0 MiB Items: 6121
De lijst toont de grootste map eerst (in dit voorbeeld is dat de ~/.cache map).
Met de pijltoetsen op het toetsenbord kun je door de inhoud navigeren om dieper in een map te gaan, zodat je beter inzicht krijgt in wat de meeste ruimte in beslag neemt.
Je kunt ncdu uitvoeren op een willekeurige map door het pad van een map op te geven bij het opstarten:
dany@pindabook:~> ncdu Muziek
ncdu 1.16 ~ Use the arrow keys to navigate, press ? for help
--- /usr/home/Documents/Muziek ---------------------------------------
336,9 MiB [##########] /Radio 1 - De Lage Landenlijst 4
331,9 MiB [######### ] /De Lage Landenlijst 2
314,7 MiB [######### ] /De Lage Landenlijst 3
92,1 MiB [## ] /Katie Melua
45,0 MiB [# ] /Amy MacDonald
28,5 MiB [ ] /DLNA
24,0 KiB [ ] startup.ogg
24,0 KiB [ ] shutdown.ogg
4,0 KiB [ ] .sync.ffs_db
Total disk usage: 1,1 GiB Apparent size: 1,1 GiB Items: 186
Standaard toont ncdu alles wat het kan, inclusief symbolische links en pseudo-bestandssystemen zoals procfs en sysfs.
Je kunt deze uitsluiten met --exclude-kernfs.
Je kunt willekeurige bestanden en mappen uitsluiten met de optie --exclude, gevolgd door een overeen te komen patroon.
dany@pindabook:~> ncdu --exclude ".cache"
ncdu 1.16 ~ Use the arrow keys to navigate, press ? for help
--- /home/dany -------------------------------------------------------
26,1 MiB [##########] /.mozilla
11,2 MiB [#### ] /.local
1,8 MiB [ ] /Downloads
796,0 KiB [ ] /.config
76,0 KiB [ ] /.pki
16,0 KiB [ ] /.kde4
16,0 KiB [ ] .bash_history
12,0 KiB [ ] /.ssh
8,0 KiB [ ] /Bureaublad
8,0 KiB [ ] /.fonts
e 4,0 KiB [ ] /bin
4,0 KiB [ ] /.pinda
4,0 KiB [ ] .xim.template
4,0 KiB [ ] .emacs
Total disk usage: 40,1 MiB Apparent size: 39,6 MiB Items: 542
Als alternatief kun je in een bestand een lijst van uit te sluiten bestanden en mappen opnemen, en het bestand aanhalen met de optie --exclude-from:
dany@pindabook:~> ncdu --exclude-from uitsluiten.txt
ncdu 1.16 ~ Use the arrow keys to navigate, press ? for help
--- /home/dany -------------------------------------------------------
1,8 MiB [##########] /Downloads
16,0 KiB [ ] .bash_history
8,0 KiB [ ] /Bureaublad
e 4,0 KiB [ ] /bin
4,0 KiB [ ] .bashrc
4,0 KiB [ ] .xinitrc.template
4,0 KiB [ ] .profile
4,0 KiB [ ] .inputrc
4,0 KiB [ ] .wget-hsts
4,0 KiB [ ] .gtkrc-2.0
4,0 KiB [ ] uitsluiten,.txt
4,0 KiB [ ] .i18n
4,0 KiB [ ] log.txt
@ 0,0 B [ ] Afbeeldingen
Total disk usage: 1,8 MiB Apparent size: 1,8 MiB Items: 32
Je kunt wat kleur toevoegen aan ncdu met de optie --color dark.
dany@pindabook:~> ncdu --exclude-from uitsluiten.txt --color dark
De ncdu-uitvoer behandelt symlinks letterlijk, wat betekent dat een symlink die verwijst naar een bestand van 9 GB slechts 40 bytes in beslag neemt.
dany@pindabook:~> ncdu /bin
ncdu 1.16 ~ Use the arrow keys to navigate, press ? for help --- /bin ------------------------------------------------------------- 128,0 KiB [##########] ps 44,0 KiB [### ] login H 28,0 KiB [## ] pkill H 28,0 KiB [## ] pgrep 12,0 KiB [ ] usleep 12,0 KiB [ ] fsync @ 0,0 B [ ] dbus-update-activation-environment @ 0,0 B [ ] dbus-cleanup-sockets @ 0,0 B [ ] showconsolefont @ 0,0 B [ ] dbus-test-tool @ 0,0 B [ ] unicode_start @ 0,0 B [ ] spawn_console @ 0,0 B [ ] psfstriptable @ 0,0 B [ ] unicode_stop Total disk usage: 228,0 KiB Apparent size: 222,3 KiB Items: 126
Je kunt ncdu dwingen symlinks te volgen met de optie --follow-symlinks:
dany@pindabook:~> ncdu /bin --follow-symlinks
ncdu 1.16 ~ Use the arrow keys to navigate, press ? for help
--- /bin -------------------------------------------------------------
3,9 MiB [##########] vim
3,9 MiB [##########] vi
3,9 MiB [##########] ex
992,0 KiB [## ] sh
992,0 KiB [## ] bash
632,0 KiB [# ] ip
604,0 KiB [# ] gawk
604,0 KiB [# ] awk
504,0 KiB [# ] tar
384,0 KiB [ ] mail
300,0 KiB [ ] find
252,0 KiB [ ] systemctl
228,0 KiB [ ] dbus-daemon
212,0 KiB [ ] loadkeys
Total disk usage: 22,1 MiB Apparent size: 21,9 MiB Items: 126
Het is niet leuk om schijfruimte tekort te komen, dus is het belangrijk om het schijfgebruik in de gaten te houden. De ncdu opdracht maakt het gemakkelijk en interactief. Probeer ncdu de volgende keer dat je nieuwsgierig bent naar wat je op je PC hebt opgeslagen, of gewoon om je bestandssysteem op een nieuwe manier te verkennen.
In openSUSE Leap 15.4 verwijder je ncdu van de computer met de opdracht:
dany@pindabook:~> sudo zypper remove -u ncdu
[sudo] wachtwoord voor root:
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...
Het volgende pakket zal worden VERWIJDERD:
ncdu
1 te verwijderen pakket.
Na de bewerking zal 96,9 KiB worden vrijgemaakt.
Doorgaan? [j/n/v/...? alle opties tonen] (j): j
(1/1) Verwijderen van ncdu-1.16-bp154.1.19.x86_64 .............................................................................[gereed]