4min

Tags in dit artikel

, ,

Bestandstypen en directories

Belangrijke commands: ls


Bestanden heb je in soorten en maten. Het is een van de principes van Linux: alles bestaat uit bestanden, die geordend worden in mappen. Of het nu gaat over hardware, software, documenten, instellingen. Je kunt het zo gek niet bedenken of er is in Linux een bestand van te vinden. Vandaar dat we een korte blik werpen op welke types je nu tegenkomt, wanneer je door het bestandssysteem gaat browsen.

Voordat we alle soorten bestanden gaan bekijken, zullen we eerst een korte uitleg geven over hoe Linux met bestanden omgaat. Wie namelijk de bestanden van Linux gaat bekijken, zal opmerken dat er bijzonder weinig gebruik gemaakt wordt van extensies. Sterker nog: extensies hebben in principe geen waarde in Linux. Als er een extensie is, dan is het over het algemeen een hulpmiddel voor de gebruiker om snel en gemakkelijk te zien met wat voor bestand hij te maken heeft.
Wanneer je bijvoorbeeld de extensie van een MS Word document (.doc) verandert in een OpenOffice-extensie (.odt), dan zal Linux het blijven benaderen als een .doc.

Het enige waar in Linux onderscheid gemaakt wordt, is het bestandstype. Er zijn er in principe zeven te onderscheiden (die worden hieronder ook vermeld). Om erachter te komen met wat voor bestandstype je te maken hebt, kun je gebruik maken van het command ‘ls’. Met het command ‘ls -al’ krijg je een overzicht van alle bestanden:

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
[demo@demo Template]$ ls -al
drwxr-xr-x  5 user demo   4096 okt 13 13:21 .
drwx------ 69 user demo  12288 okt 13 13:22 ..
-rw-rw-r--  1 user demo   5428 okt  3 15:29 afbeelding.jpg
drwxrwxr-x  2 user demo   4096 jan  1  1970 Backup
-rw-r--r--  1 user demo   1312 jan  1  1980 content.xml
lrwxrwxrwx  1 user demo     11 sep 26 15:43 data -> /media/data
-rw-rw-r--  1 user demo 114688 sep 19 08:39 document.doc
-rw-------  1 user demo  51912 aug  4 13:47 document.pdf
-rw-rw-r--  1 user demo   1884 jul 27 10:43 kladblok.txt
-rw-rw-r--  1 user demo    557 okt 10 08:56 notitie
^

In de bovenstaande voorbeeld output is aan het eerste karakter van de regel te zien met wat voor bestandstype je te maken hebt. Het gaat hier dus om tien verschillende bestanden (inclusief de dirs), terwijl er maar 3drie verschillende bestandtypen te zien zijn. In de tabel hieronder wordt een overzicht gegeven van de mogelijke bestandstypen in Linux en wat deze voor functie hebben in het systeem:

Type Beschrijving[/b]
d Dit staat voor directory. Ook wel bekend onder de naam folder of map. De eigenlijke bijschrijving is een container voor andere entries.
l Dit staat voor Link. Ook wel een symbolic link genoemd (symlink / soft link). Het lijkt sterk op een snelkoppeling in Windows, maar is toch weer heel anders. Een symbolic link is een klein bestand, wat verwijst naar een ander bestand. Ik heb bijvoorbeeld een symlink /bin/racespel, die verwijst naar /usr/local/games/bin/racespel. Telkens wanneer ik dan /bin/racespel open, zal de kernel dit interpreteren als een verwijzing naar /usr/local/games/bin/racespel en dit bestand openen.
c Dit staat voor character device (ook wel raw device of character special file). Deze bestanden geven namen aan apparaten. Het bestand /dev/audio verwijst bijvoorbeeld naar een fysiek apparaat in je PC. Ook kan dit soort bestanden gebruikt worden om te verwijzen naar pseudo-apparaten. Het bestand /dev/random is daar een voorbeeld van: het biedt toegang tot de random number generator van de kernel. Over het algemeen ondersteunen character devices lees- en schrijfbewerkingen in een opeenvolgende gegevensstroom. Vrijwel alle character devices zijn te vinden in /dev
b Dit staat voor block device. Dit zijn de verwijzingen naar een disk. Een voorbeeld hierbij is /dev/sda2: sda is de eerste HDD aangesloten op het moederbord en het nummer erachter staat voor de partitie op die disk. Waar character devices opeenvolgende gegevensstromen verwerken, is het bij block devices mogelijk om willekeurig toegang te krijgen tot het apparaat. Ten tweede is het bij block devices mogelijk voor de kernel om blocks te bufferen, zodat deze in een keer een block kunnen lezen of schrijven. Vrijwel alle block devices zijn te vinden in /dev.
s Dit staat voor Unix-domain sockets. Ze worden ook wel "communicatie eindpunten" genoemd. Ze worden op een soortgelijke wijze gebruikt als TCP en UDP sockets, maar dan zo dat ze alleen de communicatie ondersteunen van processen in een enkel systeem.
p Dit staat voor pipes. Deze bestanden komen nauwelijks voor (gemiddeld zeven bestanden in een heel systeem. Ze zijn vergelijkbaar met sockets.
Alles, anders dan de bovengenoemde bestanden, krijgen het voorvoegsel ‘~’ (tilde). Een normaal bestand. Dit kunnen allerlei soorten bestanden zijn; van documenten tot scripts tot videobestanden. Dit soort bestanden komt verreweg het meest voor.

De praktijk leert dat je vooral met symlinken, directories en de overige (~) bestanden te maken hebt.