Ga naar inhoud

Het mv commando

Controleren of mv aanwezig is

Het mv-commando is een van de meest gebruikte commandoโ€™s in Linux en staat bijna altijd standaard op je systeem geรฏnstalleerd.
Het maakt deel uit van het pakket GNU coreutils, dat basiscommandoโ€™s levert zoals cp, ls, rm, en cat.

Wil je controleren of mv aanwezig is, dan kun je de versie opvragen:

mv --version
Voorbeeldoutput
mv (GNU coreutils) 9.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.

โš™๏ธ Installeren van mv

Het commando mv maakt deel uit van het pakket GNU coreutils.
Dit pakket bevat de meest gebruikte basiscommandoโ€™s in Linux, zoals cp, ls, rm, en cat.

๐Ÿ‘‰ Daarom is mv op vrijwel alle Linux-distributies standaard geรฏnstalleerd, inclusief Debian en Ubuntu.
Alleen in uitzonderlijke gevallen, zoals zeer minimale systemen of custom builds, moet je het handmatig installeren.

Installatie op Debian/Ubuntu:

sudo apt update
sudo apt install coreutils

Voorbeeldoutput
mv (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Hieronder vind je enkele veelgebruikte combinaties van het mv-commando:

  • mv bestand.txt nieuwenaam.txt โ†’ Hernoem een bestand
Voorbeeld gebruik van mv bestand.txt nieuwenaam.txt

Commando:

mv bestand.txt nieuwenaam.txt
Voorbeeldoutput:
bestand.txt is hernoemd naar nieuwenaam.txt

  • mv bestand.txt /map/ โ†’ Verplaats bestand naar een map
Voorbeeld gebruik van mv bestand.txt /map/

Commando:

mv bestand.txt /map/
Voorbeeldoutput:
/map/bestand.txt

  • mv map1 map2/ โ†’ Verplaats een hele map
Voorbeeld gebruik van mv map1 map2/

Commando:

mv map1 map2/
Voorbeeldoutput:
map1 staat nu in map2/

  • mv -i bestand.txt doel.txt โ†’ Vraagt bevestiging vรณรณr overschrijven

  • mv -u bestand.txt doel.txt โ†’ Verplaats alleen als bron nieuwer is

  • mv -v bestand.txt doel.txt โ†’ Laat zien wat er verplaatst of hernoemd wordt

  • mv -n bestand.txt doel.txt โ†’ Overschrijft nooit bestaande bestanden

  • mv -t map/ bestand1 bestand2 โ†’ Verplaats meerdere bestanden in รฉรฉn map

  • mv --backup bestand.txt doel/ โ†’ Maak een backup (~) als er een bestand wordt overschreven

  • mv --strip-trailing-slashes pad/ โ†’ Verwijder trailing / bij bestandsnamen

Het mv-commando heeft weinig configuratie, maar je kunt aliases maken voor veiliger gebruik.

1. Per gebruiker instellen

Plaats instellingen in je shell-configuratie:

alias mv='mv -i'

Dit zorgt dat je altijd bevestiging moet geven voor overschrijven.

2. System-wide instellen

Plaats dezelfde alias in /etc/bash.bashrc of /etc/profile.

Voordelen: - Voorkomt dat bestanden per ongeluk overschreven worden.

Logging van het mv-commando

Het mv-commando schrijft zelf geen logbestanden weg.
Wil je gebruik van mv monitoren, dan kan dat met auditd.

Voorbeeld auditd regel

sudo auditctl -w /bin/mv -p x -k mv_monitor
  • -w /bin/mv โ†’ bewaak het bestand /bin/mv
  • -p x โ†’ log bij uitvoeren
  • -k mv_monitor โ†’ tag voor herkenning

Logs bekijken:

ausearch -k mv_monitor

Of rechtstreeks in:

less /var/log/audit/audit.log

Coreutils en het mv-commando

Het mv-commando maakt deel uit van coreutils.
Je kunt mv dus niet apart updaten, alleen het hele pakket.

sudo apt update
sudo apt install --only-upgrade coreutils

Verwijderen van mv

Het mv-commando is een fundamenteel onderdeel van Linux.
Het verwijderen kan scripts of systeemfunctionaliteit breken.
Gebruik liever permissies of een alias als je het wilt beperken.

Voorbeeld alias om mv te blokkeren:

alias mv='echo "mv is uitgeschakeld"'

Permissies aanpassen:

sudo chmod 700 /bin/mv
(Alleen root kan het uitvoeren)

๐Ÿ“– Handleiding

De ingebouwde handleiding van Linux-commandoโ€™s is altijd beschikbaar via man.
Voor mv:

man mv
Voorbeeld
MV(1)                      User Commands                     MV(1)

NAME
       mv - move (rename) files

SYNOPSIS
       mv [OPTION]... [-T] SOURCE DEST
       mv [OPTION]... SOURCE... DIRECTORY
       mv [OPTION]... -t DIRECTORY SOURCE...

DESCRIPTION
       Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.