mv

La commande mv (pour move) permet de déplacer des fichiers, ou de renommer un fichier.

Renommer un fichier

Pour renommer un fichier, il suffit de préciser le nom du fichier, et ensuite le nouveau nom du fichier:

$ ls
bad_name
$ mv bad_name good_name
$ ls
good_name

Soyez attentif que si le second nom est celui d'un dossier, le fichier sera déplacé dans celui-ci plutôt que renommé:

$ ls -F
a_file  folder/
$ mv a_file folder
$ ls -F
folder/
$ ls folder/
a_file

Déplacer des fichiers

Pour déplacer un ou plusieurs fichier, il faut préciser les fichiers, suivit d'un répertoire de destination.

Si les fichiers à déplacer sont sur le même système de fichier que la destination, seul l'emplacement sur le système est changé. Si la destination est sur un autre système de fichier, les fichiers sont d'abord copié, puis supprimés de leur emplacement d'origine. Ceci à une influence sur les droits des fichiers, mv tente en effet de copier les authorisations et les dates, mais tout les systèmes de fichiers n'ont pas ces fonctionnalités.

Voici un exemple de déplacement d'un fichier et de plusieurs fichiers:

$ ls -F
dest/  file1  folder/
dest/  file  file1  file2  file3  folder/
$ mv file folder
$ mv file1 file2 file3 dest
$ ls folder
file
$ ls dest
file1  file2  file3

Écrase ou n'écrase pas

Les options importante concernent le comportement de mv lorsqu'un fichier de destination existe déjà.

Par défaut, la commande écrase les fichier existant lors du déplacement ou du changement de nom. L'option -i (ou --interactive) rend la commande interactive, qui demande alors confirmation avant d'écraser un fichier.

Voici un exemple de déplacement avec confirmation:

$ ls
file1  file2  file3
$ mv -i file1 file3
mv: écraser `file3'? y
$ ls
file2  file3

Il est possible de créer un alias de mv avec l'option -i afin que la demande de confirmation soit systématique. Dans ce cas, il faut utiliser l'option -f (ou --force) pour forcer l'écrasement sans confirmation.

Voici par exemple comment créer un alias et comment utiliser -f:

$ ls
file2  file3
$ alias mv='mv -i'
$ mv file2 file3
mv: écraser `file3'? n
$ mv -f file2 file3
$ ls
file3

Finalement, une option permet de déplacer les fichiers sans écraser les fichiers existant: -b (ou --backup). Avec cette option, les fichiers sont renommés au lieu d'être écrasé:

$ ls
file2  file3
$ mv -b file2 file3
$ ls
file3  file3~

Les options importantes

-f, --force
Si un fichier de destination existe, il est écrasé sans demandé de confirmation.
-i, --interactive
Si un fichier de destination existe, demander confirmation avant d'écraser.
-b, --backup
Effectue une copie de secours lorsqu'un fichier est écrasé.

Page de manuel

Pour voir l'ensemble des options et des caractéristiques de mv, regardez la page de manuel.