
Linux command: ls
Als je Linux gebruikt, gebruik je ls. Het is een van de eerste commando's die elke nieuwe gebruiker leert, en een van de laatste commando's waar een ervaren systeembeheerder afstand van doet. Je gebruikt het op je laptop, op een webserver via SSH en zelfs in een minimale herstelomgeving als er iets mis is gegaan.
1. De basis
De taak van ls is simpel: het toont de inhoud van een map. Voordat je een bestand kopieert, verplaatst, verwijdert of bewerkt, gebruik je ls om te zien wat er daadwerkelijk aanwezig is. In die zin is ls je ogen op het bestandssysteem.
Twee dingen maken ls bijzonder. Ten eerste is het veilig. Het commando leest alleen en wijzigt nooit een bestand. Je kunt het zonder zorgen gebruiken terwijl je een onbekende server verkent, zonder risico iets kapot te maken. Ten tweede is het informatief. Met een paar opties krijg je antwoord op bijna alle dagelijkse vragen: wat staat hier, hoe groot is het, hoe oud is het en van wie is het?
Het commando dat je honderd keer per dag gebruikt. Achter die korte naam van twee letters schuilt tientallen jaren Unix-geschiedenis, een verrassend aantal opties en een directe blik op hoe een bestandssysteem echt werkt.
In dit artikel beginnen we met het eenvoudigste gebruik en bouwen we stap voor stap op naar geavanceerde technieken. Onderweg leer je ook hoe Linux bestanden opslaat, wat bestandsrechten betekenen en wat een inode is. Aan het einde lees je een regel uit de uitvoer van ls -l alsof het een gewone zin is.
Naar bovenHet juiste denkmodel: een map is eigenlijk gewoon een lijst met namen die naar bestanden verwijzen.
lsleest die lijst en laat hem aan je zien. Elke optie stelt een andere vraag over die lijst.
2. Waar komt de naam vandaan?
De naam ls is een afkorting van list, zoals in "list directory contents" (toon de inhoud van een map).
ls = LiSt
Waarom zijn de klinkers weggelaten? In de beginjaren van Unix werd gewerkt met trage teletype-terminals, waarbij elke toetsaanslag letter voor letter op papier werd afgedrukt. Korte commando's bespaarden tijd en papier. Daarom bestaan veel basiscommando's uit slechts twee letters: cp (copy), mv (move), rm (remove), cd (change directory) en ls (list). Korte namen waren simpelweg de standaard.
Die gewoonte bestaat inmiddels al meer dan vijftig jaar. Zodra een commandonaam in het spiergeheugen van iedereen zit, is er weinig reden om hem langer te maken. Daarom blijft ls gewoon ls.
3. Een korte geschiedenis
Het commando ls is ouder dan Linux zelf. Het verscheen voor het eerst in Multics, het besturingssysteemproject waaruit Unix is voortgekomen, en werd vervolgens opgenomen in Unix 1st Edition van Bell Labs in 1971. Sindsdien is het aanwezig op vrijwel elk Unix-achtig systeem: Linux, macOS, BSD, Solaris en AIX.
| Periode | Mijlpaal |
|---|---|
| ~1965 | ls bestaat in Multics |
| 1971 | Opgenomen in Unix 1st Edition |
| Jaren 80 | BSD voegt kleuren, kolommen en de optie -G toe |
| Vandaag | De GNU coreutils-versie van ls draait op de meeste Linux-distributies |
In de praktijk kom je twee hoofdvarianten tegen. De meeste Linux-systemen gebruiken de GNU coreutils-versie van ls. macOS en BSD-systemen leveren de BSD-versie mee. Ze zijn voor ongeveer 95% hetzelfde. De verschillen zitten vooral in kleurinstellingen en enkele lange opties. In dit artikel gebruiken we de GNU-versie, omdat die op vrijwel elke Linux-server aanwezig is.
Naar bovenEen commando dat meer dan vijftig jaar oud is, nog dagelijks wordt gebruikt en in essentie nauwelijks veranderd is, bewijst dat een goed ontworpen interface de tand des tijds doorstaat.
4. Eenvoudige toepassingen
4.1 Het eenvoudigste gebruik
Typ ls zonder iets erachter. Het toont de inhoud van de huidige map. In de voorbeelden hieronder is de regel die begint met $ wat je invoert, en zijn de regels daaronder de uitvoer van het systeem.
$ ls
Documents Downloads Music Pictures notes.txt todo.md
Standaard gebeuren er drie dingen:
- Items worden alfabetisch gesorteerd.
- Ze worden weergegeven in kolommen die passen binnen de breedte van je terminal.
- Verborgen bestanden worden niet getoond (daarover zo meer).
4.2 ls op een specifiek pad gebruiken
Je kunt ls ook precies vertellen waar het moet kijken, in plaats van de huidige map te gebruiken:
$ ls /etc # een specifieke map via een absoluut pad
$ ls Documents # een submap via een relatief pad
$ ls notes.txt # controleren of één bestand bestaat
$ ls Documents Downloads # meerdere locaties tegelijk
Dit is een snelle controle. Als ls de naam toont, bestaat het bestand en mag je de map lezen. Krijg je een foutmelding, dan klopt het pad niet of heb je onvoldoende rechten.
4.3 Verborgen bestanden tonen: -a
Bestanden waarvan de naam begint met een punt (.) worden volgens afspraak als "verborgen" beschouwd. Meestal zijn dit configuratiebestanden die je niet dagelijks hoeft te zien. Met de optie -a (afkorting van all) maak je ze zichtbaar:
$ ls -a
. .. .bashrc .config .ssh Documents notes.txt
| Item | Betekenis |
|---|---|
. |
Deze map |
.. |
De bovenliggende map |
.bashrc |
Een verborgen configuratiebestand |
Een punt aan het begin van een bestandsnaam is slechts een naamgevingsafspraak die door ls wordt gerespecteerd. Er zit verder niets bijzonders aan het bestand zelf. Als de extra vermeldingen . en .. in de weg zitten, gebruik dan -A ("almost all"). Daarmee zie je verborgen bestanden, maar niet . en ...
4.4 Het lange formaat: -l
Dit is waarschijnlijk de optie die je het vaakst gebruikt. Met -l (afkorting van long) krijg je één bestand per regel te zien, inclusief uitgebreide informatie:
$ ls -l
drwxr-xr-x 2 peter staff 4096 Jun 1 09:14 Documents
-rw-r--r-- 1 peter staff 1234 May 28 17:02 notes.txt
Elke kolom heeft een vaste betekenis. Lees ze van links naar rechts:
| Kolom | Betekenis |
|---|---|
-rw-r--r-- |
Bestandstype en rechten (uitgelegd in sectie 6) |
1 |
Aantal harde links |
peter |
Eigenaar |
staff |
Groep |
1234 |
Grootte in bytes |
May 28 17:02 |
Datum en tijd van de laatste wijziging |
notes.txt |
Bestandsnaam |
Naar boven
ls -lis het verschil tussen "wat staat hier?" en "vertel me alles over wat hier staat".
5. Gemiddelde toepassingen
5.1 Menselijk leesbare bestandsgroottes: -h
Ruwe aantallen bytes zijn lastig snel te lezen. De optie -h (afkorting van human) zet ze om naar K, M en G. Alleen de grootteweergave verandert, daarom gebruik je deze meestal samen met -l:
$ ls -lh
-rw-r--r-- 1 peter staff 1.2K May 28 17:02 notes.txt
-rw-r--r-- 1 peter staff 45M May 30 11:20 video.mp4
De combinatie ls -lh is waarschijnlijk het meest gebruikte ls-commando ter wereld. Lees het als: "toon een gedetailleerde lijst met bestandsgroottes die ik daadwerkelijk kan lezen".
5.2 Opties combineren
Omdat Unix-opties uit één letter bestaan, kun je ze achter één koppelteken combineren. De volgende drie commando's doen precies hetzelfde:
$ ls -l -a -h
$ ls -lah
$ ls -alh # de volgorde van de letters maakt niet uit
De meeste Linux-gebruikers typen ls -lah ("long, all, human") als één geheel, zonder nog na te denken over de afzonderlijke letters. Het is handig om dat ook zo aan te leren.
5.3 Sorteren
Standaard sorteert ls op naam. Met verschillende opties kun je dat veranderen:
| Optie | Sorteert op | Typisch gebruik |
|---|---|---|
-t |
Tijd (nieuwste eerst) | "Wat heb ik net gewijzigd?" |
-S |
Grootte (grootste eerst) | "Wat vult mijn schijf?" |
-X |
Bestandsextensie | Bestanden per type groeperen |
-v |
Versie / natuurlijke volgorde | Zet file2 vóór file10 |
-r |
Keert elke sortering om | Combineren met bovenstaande opties |
In de praktijk:
$ ls -lt # nieuwste bovenaan
$ ls -ltr # nieuwste onderaan, ideaal in een drukke logmap
$ ls -lhS # grootste bestanden eerst, met leesbare groottes
Het commando ls -ltr is een echte klassieker onder systeembeheerders. Het meest recent gewijzigde bestand verschijnt op de laatste regel, vlak boven je prompt, precies waar je oog meestal al naartoe gaat.
5.4 Bestandstypen markeren: -F
Met de optie -F (ook wel classify genoemd) wordt een klein symbool achter elke naam geplaatst, zodat je bestandstypen kunt herkennen zonder -l te gebruiken:
$ ls -F
Documents/ script.sh* notes.txt link@
| Achtervoegsel | Betekenis |
|---|---|
/ |
Map |
* |
Uitvoerbaar bestand |
@ |
Symbolische link |
| |
Named pipe (FIFO) |
5.5 De map zelf tonen: -d
Normaal gesproken gaat ls Documents de map in en toont het de inhoud. Met de optie -d (afkorting van directory) laat ls juist de map zelf zien:
$ ls -ld Documents
drwxr-xr-x 2 peter staff 4096 Jun 1 09:14 Documents
Met dezelfde truc kun je alleen de mappen in de huidige map tonen, zonder hun inhoud:
$ ls -d */
5.6 Kleurgebruik
De meeste Linux-distributies zijn zo ingesteld dat mappen, links en uitvoerbare bestanden automatisch in verschillende kleuren worden weergegeven. Dat gebeurt met een kleine extra optie:
$ ls --color=auto # GNU / Linux
$ ls -G # BSD / macOS
De kleuren worden bepaald door de omgevingsvariabele LS_COLORS. Ze zijn puur bedoeld voor de weergave. Als je de uitvoer van ls doorstuurt naar een ander commando, verdwijnen de kleurcodes automatisch, precies zoals je wilt.
6. Geavanceerde toepassingen
6.1 De rechtenregel lezen
De eerste kolom van ls -l bevat verrassend veel informatie in slechts tien tekens. Lees hem in vier delen:
- rwx r-x r--
| | | |
type eigenaar groep anderen
Het eerste teken geeft het bestandstype aan. De volgende negen tekens bestaan uit drie groepen van rwx (read, write, execute) voor de eigenaar, de groep en alle overige gebruikers. Een streepje betekent dat een recht ontbreekt. rwxr-xr-- betekent dus: de eigenaar mag alles, de groep mag lezen en uitvoeren, en alle anderen mogen alleen lezen.
Het allereerste teken laat zien om welk type item het gaat:
| Teken | Type |
|---|---|
- |
Normaal bestand |
d |
Map |
l |
Symbolische link |
c |
Character device (bijvoorbeeld een terminal) |
b |
Block device (bijvoorbeeld een schijf) |
p |
Named pipe (FIFO) |
s |
Socket |
De minder voorkomende typen zie je bijvoorbeeld in de map /dev:
$ ls -l /dev | head
crw-rw-rw- 1 root root 1, 3 Jun 2 08:00 null
brw-rw---- 1 root disk 8, 0 Jun 2 08:00 sda
Als je dit eenmaal ziet, valt het Unix-principe "alles is een bestand" vaak ineens op zijn plaats.
6.2 Recursief weergeven: -R
Met de optie -R (afkorting van recursive) doorloopt ls alle submappen en toont deze ook:
$ ls -R Documents
Documents:
invoices letters notes.txt
Documents/invoices:
2025.pdf 2026.pdf
Documents/letters:
draft.md
Wees voorzichtig: ls -R / probeert je volledige bestandssysteem weer te geven. Gebruik -R daarom alleen met een pad dat je echt bedoelt. Voor serieus zoeken is find meestal een betere keuze.
6.3 Globbing: de shell doet het werk
Wanneer je ls *.txt typt, is het niet ls maar de shell die *.txt uitbreidt naar een lijst van overeenkomende bestandsnamen voordat ls wordt uitgevoerd.
$ ls *.txt # alle .txt-bestanden in deze map
$ ls Doc* # alles dat begint met "Doc"
$ ls report-?.md # ? staat voor exact één teken
$ ls *.{jpg,png} # brace expansion: jpg én png
Het commando ls zelf heeft geen idee wat * betekent. Daarom krijg je "No such file" wanneer niets overeenkomt: de shell had simpelweg niets om aan ls door te geven.
6.4 ls combineren met andere hulpmiddelen
Omdat ls gewoon tekst uitvoert, werkt het uitstekend samen met de rest van de Unix-gereedschapskist. Hier gebeurt veel van het dagelijkse beheerwerk:
$ ls | wc -l # tel het aantal items in een map
$ ls -lt | head # de 10 meest recent gewijzigde bestanden
$ ls -lhS | head # de grootste bestanden
$ ls -1 | grep -i invoice # filter de lijst
Eén waarschuwing: de uitvoer van ls parsen in scripts is kwetsbaar, omdat bestandsnamen spaties en zelfs regeleinden kunnen bevatten. Gebruik voor scripts liever shell-globs (for f in *.txt) of find -print0. Voor interactief gebruik in de terminal is het combineren van ls met andere commando's prima.
6.5 De aliassen die iedereen maakt
Bijna elke Linux-gebruiker definieert een paar handige snelkoppelingen in ~/.bashrc:
alias ll='ls -lh'
alias la='ls -lah'
alias l='ls -CF'
Daarna geeft ll direct een uitgebreide lijst met leesbare bestandsgroottes. Je kunt controleren wat een alias doet met type ll. Wil je het echte commando uitvoeren, bijvoorbeeld voor schone uitvoer in een pipe, zet dan een backslash ervoor of gebruik command:
$ alias ls # vaak: alias ls='ls --color=auto'
$ \ls # voer het echte ls uit, zonder alias
$ command ls # hetzelfde, maar explicieter
Naar boven7. Wat de meeste gebruikers niet weten
7.1 Inodes en de optie -i
Hier komt een detail dat zelfs ervaren gebruikers vaak verrast. Een bestand is eigenlijk niet zijn naam. Onder de motorkap is elk bestand een inode: een genummerd record dat metadata bevat en verwijst naar de daadwerkelijke gegevens op schijf. De naam die je ziet is slechts een label dat naar die inode verwijst.
Met de optie -i kun je dat verborgen inode-nummer bekijken:
$ ls -li
1310721 -rw-r--r-- 1 peter staff 1234 May 28 17:02 notes.txt
1310722 -rw-r--r-- 2 peter staff 512 May 28 17:05 original.txt
1310722 -rw-r--r-- 2 peter staff 512 May 28 17:05 hardlink.txt
Kijk goed: original.txt en hardlink.txt hebben hetzelfde inode-nummer, 1310722, en beide tonen een linkteller van 2. Het zijn twee verschillende namen voor exact hetzelfde bestand. Dit is wat een hard link is, en ineens wordt de linkteller in ls -l een stuk logischer.
7.2 De andere tijdstempels
De meeste mensen denken dat een bestand maar één datum heeft. In werkelijkheid heeft elk bestand drie tijdstempels, waarvan ls -l er standaard slechts één laat zien:
| Optie | Toont | Betekenis |
|---|---|---|
| (standaard) | mtime | Laatste wijziging van de inhoud |
-lu |
atime | Laatste keer geopend of geraadpleegd |
-lc |
ctime | Laatste wijziging van metadata |
Je kunt ook de volledige en nauwkeurige tijdstempel opvragen in plaats van de verkorte datum:
$ ls -l --time-style=full-iso notes.txt
-rw-r--r-- 1 peter staff 1234 2026-05-28 17:02:41.000000000 +0200 notes.txt
Veel gebruikers weten niet eens dat ls -lu en ls -lc bestaan. Als je probeert uit te zoeken wanneer een bestand écht is aangeraakt, zijn dit vaak de opties die je nodig hebt.
7.3 Weten waar ls ophoudt
Een belangrijk onderdeel van ervaring is weten wanneer een hulpmiddel niet meer de juiste keuze is. ls -l geeft een snelle samenvatting. Voor alle details van één bestand kun je beter stat gebruiken:
| Wat je nodig hebt | Gebruik | Waarom |
|---|---|---|
| Zoeken in een mapstructuur | find |
Kan filteren op naam, grootte, datum en type |
| Alle metadata van één bestand | stat |
Toont alle drie de tijdstempels, de inode en schijfblokken |
| Een boomstructuur van mappen | tree |
Toont een overzichtelijke ingesprongen structuur |
Er bestaan ook moderne en mooiere alternatieven zoals eza (voorheen exa) en lsd, die kleuren, iconen en Git-status toevoegen. Ze zijn prettig om mee te werken, maar leer eerst ls. Dat staat op vrijwel elke machine waarop je ooit inlogt, of dat nu een kale container, een herstelomgeving of een twintig jaar oude server is. De moderne alternatieven zijn luxe, ls is een zekerheid.
8. Best practices
- Kijk voordat je iets doet. Gebruik
lsvoordat je bestanden kopieert, verplaatst of verwijdert. Het commando is alleen-lezen en kan niets beschadigen, dus gebruik het gerust om te controleren of je op de juiste plek zit. - Leer twee combinaties uit je hoofd. Maak jezelf vertrouwd met
ls -lah(alles tonen, inclusief verborgen bestanden, met leesbare groottes) enls -ltr(oud naar nieuw, waarbij het nieuwste bestand onderaan staat). Daarmee dek je de meeste dagelijkse situaties af. - Gebruik
-d */om alleen mappen te tonen wanneer een map vol staat met bestanden. - Gebruik
lsniet in scripts om uitvoer te parsen. Voor automatisering zijn shell-globs (for f in *.log) offind -print0betrouwbaarder. Bewaarlsvoor interactief gebruik. - Pak zonder aarzelen de handleiding erbij. Het verschil tussen beginners en professionals zit niet in het onthouden van alle opties, maar in direct
man lstypen zodra er een vraag opkomt.
$ man ls # de volledige handleiding
$ ls --help # kort overzicht van opties (GNU)
$ info coreutils 'ls invocation' # uitgebreide GNU-documentatie
Naar boven9. Veelgemaakte fouten
9.1 Drie hardnekkige misverstanden
| Misverstand | Werkelijkheid |
|---|---|
"Kleuren zijn ingebouwd in ls." |
Meestal komen ze uit een shell-alias. Voer \ls uit en de kleuren verdwijnen. |
"ls is een Linux-commando." |
Het is een Unix-commando en ongeveer twintig jaar ouder dan Linux. |
"ls -l laat alles zien." |
Verborgen bestanden worden niet getoond. Daarvoor heb je ls -la nodig. |
9.2 Andere valkuilen om te vermijden
-avergeten. Als een configuratiebestand "verdwenen" lijkt, is het waarschijnlijk een verborgen bestand. Controleer eerst metls -la.- Per ongeluk
ls -R /uitvoeren. Daarmee probeer je het volledige bestandssysteem weer te geven, wat je terminal overspoelt met uitvoer. Gebruik-Raltijd samen met een specifiek pad. - Vertrouwen op een glob die niets matcht. Wanneer
ls *.txtmeldt "No such file", betekent dat meestal dat de shell geen overeenkomende bestanden heeft gevonden, niet datlsdefect is. - Aannemen dat de getoonde datum altijd de wijzigingsdatum is. Als een back-up- of synchronisatietool een bestand heeft aangeraakt, zijn de toegangstijd (
-lu) of metadata-wijzigingstijd (-lc) soms relevanter. - Een alias ongemerkt meenemen in een pipe. Als een script zich vreemd gedraagt, kan een alias extra opties of kleurcodes toevoegen. Gebruik
\lsofcommand lsom de ruwe uitvoer te krijgen.
10. Samenvatting
Het commando ls lijkt klein en simpel, maar het biedt een compleet venster op hoe Linux werkt.
lsstaat voor "list". Het bestaat al sinds Unix in 1971, met wortels die nog verder teruggaan naar Multics, en draait vandaag de dag op vrijwel elk Unix-achtig systeem.- Het is alleen-lezen en volledig veilig, waardoor het het ideale commando is om een onbekend systeem te verkennen.
- Met
-atoon je verborgen bestanden, met-lkrijg je uitgebreide informatie en met-hworden bestandsgroottes leesbaar weergegeven.ls -lahcombineert deze drie opties. - De eerste kolom van het lange formaat bevat informatie over het bestandstype en de rechten, bijvoorbeeld
drwxr-xr-x. - Je kunt sorteren met
-t(tijd),-S(grootte) en-r(omgekeerde volgorde). De combinatiels -ltris een echte klassieker in het dagelijks gebruik. - Ga een stap verder met
-R(recursief),-i(inodes, waarmee hard links zichtbaar worden),-d(de map zelf tonen) en de alternatieve tijdsweergaven-uen-c. - Patroonmatching zoals
ls *.txtwordt uitgevoerd door de shell, niet doorls. Daarnaast werktlsuitstekend samen met hulpmiddelen zoalswc,headengrep. - Weet ook wanneer je een ander hulpmiddel moet gebruiken:
findvoor zoeken,statvoor alle details van één bestand entreevoor een boomstructuur van mappen. - Twijfel je? Typ gewoon
man ls.
Dit is een handig overzicht om bij de hand te houden:
ls toon wat hier staat
ls -a toon ook verborgen bestanden
ls -lh details met leesbare bestandsgroottes
ls -lah alles tegelijk
ls -ltr van oud naar nieuw (nieuwste onderaan)
ls -lhS grootste bestanden eerst
ls -ld */ toon alleen de mappen zelf
ls -li inclusief inode-nummers (en hard links herkennen)
ls -R DIR recursief door alle submappen
Naar boven

Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.