Bestanden en Mappen

← Terug naar overzicht

Bestanden aanmaken

In het vorige hoofdstuk leerde je navigeren door het bestandssysteem. Nu ga je zelf bestanden en mappen aanmaken.

`touch` -- Bestanden aanmaken

Het commando touch maakt een leeg bestand aan. Als het bestand al bestaat, wordt alleen de tijdstempel bijgewerkt.

touch mijnbestand.txt

Je kunt ook meerdere bestanden tegelijk aanmaken:

touch bestand1.txt bestand2.txt bestand3.txt

`mkdir` -- Mappen aanmaken

Het commando mkdir (make directory) maakt een nieuwe map aan:

mkdir mijnmap

Met de optie -p kun je een hele padstructuur in een keer aanmaken, inclusief tussenliggende mappen die nog niet bestaan:

mkdir -p projecten/2024/januari

Oefening 1

Maak een nieuw leeg bestand aan met de naam test.txt in je thuismap.

Jouw commando:

Oefening 2

Maak een nieuwe map aan met de naam oefeningen in je thuismap.

Jouw commando:

Oefening 3

Je wilt drie lege bestanden tegelijk aanmaken: a.txt, b.txt en c.txt. Doe dit in een enkel commando.

Jouw commando:

Oefening 4

Maak de volgende mappenstructuur aan in een enkel commando: school/vakken/linux. De tussenliggende mappen school en vakken bestaan nog niet en moeten automatisch mee aangemaakt worden.

Jouw commando:

Oefening 5

Maak een map verslagen aan in je thuismap en maak daarin meteen een bestand verslag1.txt aan. Voer beide acties uit in een enkele regel.

Jouw commando:

Kopieren en verplaatsen

Nu je bestanden en mappen kunt aanmaken, leer je ze kopieren en verplaatsen.

`cp` -- Kopieren

Het commando cp (copy) kopieert een bestand:

cp bron.txt doel.txt

Om een volledige map met inhoud te kopieren, gebruik je de optie -r (recursive):

cp -r bronmap doelmap

`mv` -- Verplaatsen en hernoemen

Het commando mv (move) verplaatst een bestand of map. Het wordt ook gebruikt om te hernoemen:

mv oud.txt nieuw.txt          # hernoemen
mv bestand.txt Documents/     # verplaatsen naar andere map

Bij mv heb je geen -r nodig voor mappen -- het verplaatst de hele map in een keer.

Oefening 1

Kopieer het bestand Documents/readme.txt naar je thuismap en geef de kopie de naam kopie.txt.

Jouw commando:

Oefening 2

Het bestand Documents/notes.md moet hernoemd worden naar Documents/notities.md. Het originele bestand mag daarna niet meer bestaan.

Jouw commando:

Oefening 3

Maak een volledige kopie van de map projects/website (inclusief alle bestanden erin) naar een nieuwe map projects/website_backup.

Jouw commando:

Oefening 4

Maak een nieuw bestand todo.txt aan in je thuismap en verplaats het daarna naar de map Documents. Het bestand mag na afloop niet meer in je thuismap staan. Doe dit in een enkele regel.

Jouw commando:

Oefening 5

Kopieer het bestand Documents/readme.txt naar de map Downloads, maar geef het daar de naam info.txt. Het origineel moet blijven staan. Doe dit in een enkel commando.

Jouw commando:

Oefening 6

Verplaats de volledige map projects/website naar de map Documents. Na afloop moet Documents/website/index.html bestaan en mag de oorspronkelijke locatie niet meer bestaan.

Jouw commando:

Verwijderen

Je kunt nu bestanden aanmaken, kopieren en verplaatsen. Nu leer je hoe je ze verwijdert. Wees voorzichtig: in Linux is er standaard geen prullenbak. Wat je verwijdert, is weg.

`rm` -- Bestanden verwijderen

rm bestand.txt

`rm -r` -- Mappen verwijderen (recursief)

Om een map met inhoud te verwijderen:

rm -r mapnaam

`rmdir` -- Lege mappen verwijderen

Het commando rmdir verwijdert alleen lege mappen. Dit is veiliger dan rm -r:

rmdir legeMap

Pas op met `rm -rf`

Het commando rm -rf verwijdert alles zonder bevestiging. De -f (force) onderdrukt waarschuwingen. Dit is het gevaarlijkste commando in Linux:

rm -rf /    # NOOIT DOEN -- verwijdert het hele systeem!

Gebruik rm -rf alleen als je zeker weet wat je doet.

Oefening 1

Het bestand Documents/readme.txt is niet meer nodig. Verwijder het.

Jouw commando:

Oefening 2

Maak een lege map temp aan en verwijder deze daarna weer. De map is leeg, dus je kunt een veilige methode gebruiken die alleen lege mappen verwijdert. Gebruik twee commando's met &&.

Jouw commando:

Oefening 3

De map projects/website bevat meerdere bestanden en is niet meer nodig. Verwijder de hele map inclusief alles wat erin staat.

Jouw commando:

Oefening 4

Maak een map testmap aan met daarin een bestand data.txt. Verwijder vervolgens de hele map inclusief inhoud. Doe alles in een enkele regel.

Jouw commando:

Oefening 5

In de map projects/website staan twee bestanden: style.css en index.html. Verwijder alleen style.css en laat index.html intact.

Jouw commando:

Wildcards (Globbing)

Tot nu toe heb je steeds exacte bestandsnamen getypt. Met wildcards (ook wel globbing genoemd) kun je patronen gebruiken om meerdere bestanden tegelijk te selecteren.

De belangrijkste wildcards

| Wildcard | Betekenis | Voorbeeld |

|----------|-----------|-----------|

| * | Nul of meer willekeurige tekens | *.txt -- alle .txt-bestanden |

| ? | Precies een willekeurig teken | bestand?.txt -- bestand1.txt, bestandA.txt |

| [abc] | Een van de opgegeven tekens | bestand[123].txt -- bestand1.txt, bestand2.txt, bestand3.txt |

| [a-z] | Een bereik van tekens | [a-c]*.txt -- bestanden die beginnen met a, b of c |

| [!abc] | Niet een van deze tekens | bestand[!1].txt -- alles behalve bestand1.txt |

Wildcards worden door de shell uitgebreid voordat het commando ze ziet. Ze werken met ls, cp, mv, rm en vrijwel elk ander commando.

Oefening 1

Er staan diverse bestanden in de map Documents. Toon een lijst van alleen de bestanden die eindigen op .txt.

Jouw commando:

Oefening 2

Er staan meerdere bestanden in je thuismap. Toon een lijst van alleen de bestanden die beginnen met rapport en eindigen op .txt.

Jouw commando:

Oefening 3

Er staan bestanden log1.txt tot en met log5.txt en ook log10.txt in je thuismap. Toon alleen de logbestanden waarvan er precies een teken staat tussen log en .txt (dus log10.txt mag niet in de lijst staan).

Jouw commando:

Oefening 4

Er staan vier bestanden in je thuismap: verslag_a.txt, verslag_b.txt, verslag_c.txt en verslag_x.txt. Toon alleen de verslagen a, b en c, maar niet x.

Jouw commando:

Oefening 5

Kopieer alle .txt-bestanden uit de map Documents naar de map Downloads in een enkel commando. Gebruik een wildcard-patroon zodat je niet elk bestand apart hoeft te noemen.

Jouw commando:

Oefening 6

Er staan genummerde bestanden in je thuismap: tmp_1.dat tot en met tmp_5.dat, plus tmp_8.dat en tmp_9.dat. Verwijder alleen de bestanden met nummers 1 tot en met 5 en laat de rest staan. Doe dit in een enkel commando.

Jouw commando:

Samenvatting

In dit hoofdstuk heb je geleerd hoe je bestanden en mappen beheert in Linux:

Met deze commando's heb je volledige controle over het aanmaken, kopieren, verplaatsen en verwijderen van bestanden en mappen. In het volgende hoofdstuk leer je hoe je de inhoud van bestanden bekijkt en bewerkt.