Ga naar hoofdinhoud

2.2 Maken en schrijven

Hier bouw je op verder: Bestanden lezen met cat

Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.

Een nieuwe map maak je met mkdir (make directory):

mkdir project
cd project
pwd
/home/student/project
Terminal laden...

Wat je hier maakt, is weg als je de pagina herlaadt. Op een echte computer blijft het staan.

Een bestand maken​

Met touch maak je een leeg bestand:

touch leesmij.txt
ls
leesmij.txt

Een leeg bestand heb je niet vaak nodig. Meestal wil je er meteen iets in hebben. Dat doe je met echo en een pijltje:

echo "Mijn eerste project" > leesmij.txt
cat leesmij.txt
Mijn eerste project

echo zet tekst op het scherm. Het teken > stuurt die tekst niet naar het scherm, maar een bestand in. Dat heet omleiden, en het werkt met elk : ls /etc > lijst.txt zet de lijst met bestanden in lijst.txt.

Voorspel​

Je typt deze twee regels na elkaar. Wat staat er daarna in leesmij.txt?

echo "regel een" > leesmij.txt
echo "regel twee" > leesmij.txt
Klik hier als je het hebt geprobeerd

Alleen regel twee. Eén pijltje maakt het bestand eerst leeg. Wil je er iets onder zetten, gebruik dan twee:

echo "regel een" > leesmij.txt
echo "regel twee" >> leesmij.txt
cat leesmij.txt
regel een
regel twee

Opdracht 2.2.a: een boodschappenlijst​

  1. Maak in je een map lijstjes.
  2. Zet daarin een bestand boodschappen.txt met drie regels: brood, kaas en appels.
  3. Laat met één commando zien hoeveel regels het bestand heeft.
Terminal laden...
Klik hier voor een tip

De eerste regel schrijf je met >, de andere twee met >>. Tellen deed je in de vorige les.

Klik hier voor het antwoord
cd ~
mkdir lijstjes
echo brood > lijstjes/boodschappen.txt
echo kaas >> lijstjes/boodschappen.txt
echo appels >> lijstjes/boodschappen.txt
wc -l lijstjes/boodschappen.txt

Je hoeft niet met cd de map in: een naar het bestand werkt ook achter >.

Er gaat iets mis​

File exists​

mkdir: cannot create directory ‘project’: File exists

Oorzaak: er staat al een map of bestand met die naam.

Oplossing: kies een andere naam, of gebruik de map die er al is. Met ls zie je wat er staat.

Een map in een map die er nog niet is​

mkdir: cannot create directory ‘a/b’: No such file or directory

Oorzaak: mkdir a/b maakt alleen b, en verwacht dat a er al is.

Oplossing: maak eerst a, of gebruik -p (parents): dan maakt mkdir de mappen erboven ook.

# FOUT
mkdir a/b

# GOED
mkdir -p a/b

Je bestand is leeg​

Oorzaak: het commando voor de > gaf een fout, zoals ech "hallo" > a.txt met een typfout. Bash maakt het bestand leeg voordat het commando start. De foutmelding gaat niet het bestand in maar komt op je scherm, dus het bestand blijft leeg. Stond er al iets in, dan is dat ook weg.

Oplossing: verbeter het commando en schrijf het bestand opnieuw. Kijk met cat of het nu klopt.

Door naar 2.3 Kopiëren, verplaatsen en weggooien.