Terug naar hoofdinhoud

Linux command: ls

03 juni 2026

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.

Het juiste denkmodel: een map is eigenlijk gewoon een lijst met namen die naar bestanden verwijzen. ls leest die lijst en laat hem aan je zien. Elke optie stelt een andere vraag over die lijst.

Naar boven

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.

Naar boven

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.

PeriodeMijlpaal
~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.

Een 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.

Naar boven

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
ItemBetekenis
. 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:

KolomBetekenis
-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

ls -l is het verschil tussen "wat staat hier?" en "vertel me alles over wat hier staat".

Naar boven

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:

OptieSorteert opTypisch 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@
AchtervoegselBetekenis
/ 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.

Naar boven

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:

TekenType
- 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 boven

7. 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:

OptieToontBetekenis
(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 hebtGebruikWaarom
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.

Naar boven

8. Best practices

  • Kijk voordat je iets doet. Gebruik ls voordat 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) en ls -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 ls niet in scripts om uitvoer te parsen. Voor automatisering zijn shell-globs (for f in *.log) of find -print0 betrouwbaarder. Bewaar ls voor 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 ls typen 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 boven

9. Veelgemaakte fouten

9.1 Drie hardnekkige misverstanden

MisverstandWerkelijkheid
"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

  • -a vergeten. Als een configuratiebestand "verdwenen" lijkt, is het waarschijnlijk een verborgen bestand. Controleer eerst met ls -la.
  • Per ongeluk ls -R / uitvoeren. Daarmee probeer je het volledige bestandssysteem weer te geven, wat je terminal overspoelt met uitvoer. Gebruik -R altijd samen met een specifiek pad.
  • Vertrouwen op een glob die niets matcht. Wanneer ls *.txt meldt "No such file", betekent dat meestal dat de shell geen overeenkomende bestanden heeft gevonden, niet dat ls defect 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 \ls of command ls om de ruwe uitvoer te krijgen.
Naar boven

10. Samenvatting

Het commando ls lijkt klein en simpel, maar het biedt een compleet venster op hoe Linux werkt.

  • ls staat 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 -a toon je verborgen bestanden, met -l krijg je uitgebreide informatie en met -h worden bestandsgroottes leesbaar weergegeven. ls -lah combineert 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 combinatie ls -ltr is 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 -u en -c.
  • Patroonmatching zoals ls *.txt wordt uitgevoerd door de shell, niet door ls. Daarnaast werkt ls uitstekend samen met hulpmiddelen zoals wc, head en grep.
  • Weet ook wanneer je een ander hulpmiddel moet gebruiken: find voor zoeken, stat voor alle details van één bestand en tree voor 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
Linux command: ls
Peter Martin
Peter Martin

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