Bestandsacties

Met Linux-commando's uit deze rubriek kun je diverse bestandsacties uitvoeren vanuit de terminal. Gebruik essentiële Linux-commando's zoals cp, mv en rm om bestanden in je systeem te kopiëren, te verplaatsen, te hernoemen of te verwijderen.

Bestandsinhouden samenvoegen

Het opdrachtregelprogramma cat (kort voor: concatenate) werd ontwikkeld als tool voor het samenvoegen van bestandsinhouden en kan worden gebruikt als pager voor het weergeven van bestandsinhouden in de terminal.

Open cat met de volgende syntax in de terminal om een bestand in te lezen en weer te geven op stdout (de standaarduitvoer):

cat OPTIES BESTAND

Meerdere bestanden worden gescheiden door een spatie:

cat OPTIIES BESTAND1 BESTAND2

De koppeling van bestandsinhouden wordt tot stand gebracht met behulp van omleidingsoperators (>, < en |). Gebruik bijvoorbeeld de operator ‘groter dan’ (>) om de inhoud van twee bestanden samen te voegen in een derde:

cat bestand_1.txt bestand_2.txt > bestand_3.txt

Bestanden vergelijken op byte-niveau

cmp maakt deel uit van het diff-pakket en is ook bedoeld om bestandsinhouden te vergelijken. Anders dan bij diff vindt de vergelijking plaats op byte-niveau, waardoor deze met name geschikt is voor binaire bestanden.

Gebruik cmp volgens deze syntax:

cmp [OPTIES] BESTAND1 BESTAND2

Als cmp verschillen vindt, geeft het opdrachtregelprogramma byte- en regelnummer van de eerste afwijking weer in de terminal.

Op regel gesorteerde bestanden vergelijke n

Gebruik het opdrachtregelprogramma comm om gesorteerde bestanden (bijvoorbeeld via sort) per regel te vergelijken.

Het programma wordt geopend met de volgende syntax:

comm [OPTIES] BESTAND1 BESTAND2

Als comm wordt ingevoerd zonder optie geeft het programma drie kolommen weer: de eerste kolom bevat alle regels die alleen in BESTAND1 voorkomen, de tweede kolom bevat alle regels die alleen in BESTAND2 voorkomen en de derde kolom bevat alle regels die in beide bestanden voorkomen.

Het programma ondersteunt drie opties:

  • -1 = unieke regels uit BESTAND1 onderdrukken
  • -2 = unieke regels uit BESTAND2 onderdrukken
  • -3 = alle regels onderdrukken die beide bestanden bevatten

Bestanden of mappen kopiëren

Het opdrachtregelcommando cp (copy) kan worden gebruikt om bestanden en mappen te kopiëren. De syntax van het commando luidt:

cp [OPTIES] BRON DOEL

De BRON is het element dat moet worden gekopieerd. Als DOEL van de kopieerhandeling wordt ofwel een bestand of een map gedefinieerd. Als je een reeds bestaand bestand definieert als doelbestand wordt de inhoud ervan overschreven met die van het bronbestand. Je kunt het doelbestand ook aanmaken als nieuw bestand met een naam naar keuze.

Als er meerdere bestanden worden gekopieerd, moet het doel een map zijn. Hetzelfde geldt als er een map wordt gekopieerd.

Een bronbestand kopiëren naar een doelbestand in de huidige map:

cp [OPTIES] BRONBESTAND DOELBESTAND

Voorbeeld: cp bestand.txt bestand_kopie.txt

Een bronbestand uit de huidige map kopiëren naar een doelmap:

cp [OPTIES] BRONBESTAND DOELMAP

Voorbeeld: cp bestand.txt home/user/documenten/2019

Meerdere bronbestanden kopiëren naar een doelmap:

cp [OPTIES] BRONBESTAND1 BRONBESTAND2 DOELMAP

Voorbeeld: cp bestand.txt bestand.odt home/user/documenten/2019

Een bronmap uit de huidige map kopiëren naar een doelmap:

cp BRONMAP DOELMAP

Voorbeeld: cp map1 home/user/documenten/2019

Als mappen met alle inhoud moeten worden gekopieerd, moeten alle submappen met behulp van de OPTIE –R worden meegenomen in het kopieerproces.

Bestandsinhoud extraheren

Met het commando cut kun je inhoud in kolommen extraheren uit de tekstregels van een bestand (bijvoorbeeld log- of CSV-bestanden).

De syntax van het commando luidt:

cut [OPTIES] BESTAND

De precieze positie van een sectie die moet worden geëxtraheerd, wordt gedefinieerd met de opties –b (bytepositie), –c (tekenpositie), –d (afbrekingsteken) en –f (veld).

Met het opdrachtregelprogramma diff kunnen twee bestanden met elkaar worden vergeleken. Ook kan via diff worden bepaald of twee mappen dezelfde bestanden bevatten.

Dit doe je in de terminal met de volgende syntax:

diff [OPTIES] BESTAND1 BESTAND2

Bestandstype weergeven

Met het opdrachtregelcommando file kunnen gegevens bij het bestandstype van een bestand worden weergegeven.

Dit doe je volgens het volgende schema:

file [OPTIES] BESTAND

Koppeling met bestand of map maken

Het opdrachtregelprogramma ln (kort voor link) maakt een koppeling met een bestand of een map aan. Zo wordt er nog een mapinvoer aangemaakt voor dit bestand, waarmee je via een ander bestandspad toegang kunt verkrijgen tot het betreffende bestand.

De aanvraag van het opdrachtregelprogramma ln moet ten minste het pad naar het bronbestand bevatten.

ln [OPTIES] pad/naar/bronbestand

De link wordt in dit geval in de huidige werkmap aangemaakt onder dezelfde naam.

Je kunt ook een doelpad aangeven en de koppeling een willekeurige naam geven:

ln [OPTIES] pad/naar/bronbestand pad/naar/koppeling

ln genereert in de standaardinstelling zogenaamde hardlinks. Deze zijn niet geschikt om koppelingen naar mappen aan te maken. Daarnaast kunnen hardlinks niet over partitiegrenzen heen worden gebruikt. Het commando wordt daarom vaak gebruikt met de OPTIE –s (–symbolic), waarmee de zogenaamde symbolische koppelingen ook over bestandssysteemgrenzen heen kunnen worden gegenereerd. Symbolische links verwijzen altijd naar een ‘echt’ bestandspad en zijn daarvan afhankelijk.

Checksums berekenen

Met behulp van het opdrachtregelcommando md5sum kunnen MD5-checksums voor bestanden worden berekend en gecontroleerd.

Bestand of map verplaatsen

Het opdrachtregelprogramma mv (move) kopieert een bestand of map en verwijdert het oorspronkelijke element. Als dit binnen dezelfde map gebeurt, kan mv worden gebruikt om de bestanden te hernoemen.

Het programma wordt geopend met het volgende schema:

mv [OPTIE] BRON DOEL

Toepassingsvoorbeelden:

Een bestand is verplaatst naar een andere map:

mv [OPTIES] BRONBESTAND DOELMAP

Voorbeeld: mv bestand1.txt home/user/documenten/2019

Meerdere bronbestanden naar een doelmap verplaatsen:

mv [OPTIES] BRONBESTAND1 BRONBESTAND2 DOELMAP

Voorbeeld: mv bestand1.txt bestand2.txt home/user/documenten/2019

Een submap uit de huidige map naar een doelmap verplaatsen:

mv [OPTIES] MAPNAAM_OUD MAPNAAM_NIEUW

Voorbeeld: mv map1 home/user/documenten/2019

Bestand in huidige map hernoemen:

mv [OPTIES] BESTANDSNAAM_OUD BESTANDSNAAM_NIEUW

Voorbeeld: mv bestand1.txt bestand2.txt

Submap in huidige map hernoemen:

mv [OPTIES] MAPNAAM_OUD MAPNAAM_NIEUW

Voorbeeld: mv map1 map2

Bestand of map verwijderen

Het opdrachtregelprogramma rm (remove) verwijdert bestanden of complete mappen definitief.

Het programma wordt geopend met het volgende schema:

rm [OPTIES] BESTAND of rm [OPTIES] MAP

Als een map met alle submappen moet worden verwijderd, gebruik je rm met de OPTIE –R (–recursive).

rm -R MAP

Meerdere bestanden of mappen worden gescheiden met een spatie.

rm [OPTIES] BESTAND1 BESTAND2

Bestandslijsten en programma-uitvoer sorteren

Gebruik het opdrachtregelcommando sort om bestandslijsten en programma-uitvoer op regel numeriek en alfabetisch te sorteren.

De algemene syntax van het commando luidt:

sort [OPTIES] BESTAND

De sorteermethode kan worden gewijzigd met behulp van opties: bijvoorbeeld numeriek (-n), toevallig (-R) of in omgekeerde volgorde (-r).

Bestanden splitsen

Het opdrachtregelcommando split wordt gebruikt om bestanden te splitsen.

De bijbehorende syntax luidt:

split [OPTIES] [INPUT [PREFIX]]

De plaatshouder INPUT komt overeen met het bestand dat moet worden gesplitst. Het PREFIX fungeert als voorvoegsel voor de naam van de deelbestanden. De benoeming daarvan is gebaseerd op het volgende schema:

PREFIXaa, PREFIXab, PREFIXac …

Als er geen prefix wordt gedefinieerd, maakt split gebruik van het standaard prefix x.

Met de optie –b (bytes) kan de grootte van de deelbestanden worden bepaald. Deze kun je naar keuze aangeven in byte (b), kilobyte (k) of megabyte (m).

Voorbeeld:

split -b 95m archief.tgz split-archief.tgz.

Het commando split splitst het bestand archief.tgz in deelbestanden van 95 megabyte en benoemt deze als volgt:

  • split-archief.tar.aa
  • split-archief.tar.ab
  • split-archief.tar.ac

Door split gesplitste bestanden kunnen met behulp van het opdrachtregelcommando cat weer worden samengevoegd.

cat split-archief.tar.* > archief.tar

Tijdstempel weergeven

Met het opdrachtregelcommando stat (status) kunnen toegangs- en wijzigingstijdstempels van geselecteerde bestanden en mappen worden weergegeven.

De algemene syntax van het commando luidt:

stat [OPTIES] BESTAND

Het weergaveformaat kan worden gewijzigd met behulp van opties.

Tijdstempel wijzigen

Het opdrachtregelcommando touch wordt gebruikt om toegangs- en wijzigingstijdstempels van bestanden te veranderen. Als touch wordt toegepast op een niet-bestaand bestand, wordt dit automatisch aangemaakt. Het commando is daarom ook geschikt om lege bestanden aan te maken.

Gebruik touch volgens het volgende schema:

touch [OPTIES] BESTAND

Om het tijdstempel van een bestand op een gewenste datum te zetten, gebruik je de OPTIE –t inclusief tijdsaanduiding in het formaat [JJ]MMDDuumm[.ss].

Voorbeeld:
touch -t 1703231037 bestand.txt

Toegangs- en wijzigingstijdstempel worden op 23 maart 2017, 10.37 gezet. De aanpassing kan met de opties –a en –m worden beperkt tot toegangs- en wijzigingstijdstempels.

Als het commando touch zonder optie –t wordt gebruikt, wordt de huidige tijdstempel gebruikt.

Dubbele regels in bestandslijsten en programma-uitvoer verwijderen

Het opdrachtregelcommando uniq wordt in de regel gebruikt in combinatie met sort, om gesorteerde bestanden van dubbele regels te ontdoen.

In het volgende voorbeeld wordt het commando sort met een pipe (|) gekoppeld aan het commando uniq, om een bestand eerst te sorteren en vervolgens zonder dubbele regels weer te geven:

sort bestand.txt | uniq