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