Comment renommer un fichier

Voyons comment renommer un fichier avec la commande standard mv et la commande rename, plus flexible et rapide.

Renommer avec la commande mv

La commande mv est une commande standard des distribution Linux et sert initialement à déplacer un fichier avec la possibilité de le renommer. C'est ce dernier mécanisme que l'on utilise.

Renommer 1 seul fichier

Pour renommer un fichier, il faut exécuter la commande :

mv oldfile.txt newfile.txt

Renommer plusieurs fichiers

Pour renommer plusieurs fichiers .txt en .md dans le dossier courant, il faut exécuter la commande :

for f in *.txt ; do mv -- "$f" "${f%.txt}.md"

Le nouveau fichier est nommé avec le nom de l'ancien fichier en excluant la partie ".txt". Et une nouvelle extension ".md" est donnée à ce fichier.

Renommer avec la commande rename

Comme le paquet rename n'est pas d'office installé sur votre distribution Fedora, il fait parti du paquet util-linux. Il faut donc préalablement l'installer avec :

$ sudo dnf install rename

Usage de rename

La commande `rename' s'utilise comme suit :

rename [option] oldname newname filename

avec :

  • option : une série d'options disponibles (-v pour le mode verbeux, -n pour le mode simulation)
  • oldname : la chaine de caractère à remplacer
  • newname : la nouvelle chaine de caractère
  • filename : le nom du fichier à renommer

Exemples :

$ ls
abcd1.txt abcd2.txt abcd3.txt
$ rename abc xyz *.txt
$ ls
xyzd1.txt xyzd2.txt xyzd3.txt

Pour renommer tous les fichier .bak en .txt :

$ ls
abcd1.bak abcd2.bak abcd3.bak
$ rename .bak .txt *.bak
$ ls
abcd1.txt abcd2.txt abcd3.txt

Pour corriger les extensions de fichiers :

$ ls
abcd1.htm  abcd2.htm  abcd3.htm
$ rename abc xyz *.txt
$ ls
abcd1.html  abcd2.html  abcd3.html

Renommer avec la commande prename

Comme le paquet prename n'est pas d'office installé sur votre distribution Fedora, il faut préalablement le faire avec :

$ sudo dnf install prename

Pourquoi 'prename' ? parce que le 'p' est pour Perl, le langage de programmation de 'prename'.

Usage de prename

La commande `prename' s'utilise comme suit :

prename [option] <regex> filename

avec :

  • option : une série d'options disponibles (-v pour le mode verbeux, -n pour le mode simulation)
  • regex : une expression régulière Perl
  • filename : le nom du fichier à renommer

Exemple :

$ ls
abcd1.txt  abcd2.txt  abcd3.txt
$ prename 's/abc/xyz/' *.txt
$ ls
xyzd1.txt  xyzd2.txt  xyzd3.txt

Renommer par suppression d'extension

Pour renommer tous les fichiers .txt en leur enlevant leur extension :

$ ls
abcd1.txt  abcd2.txt  abcd3.txt
$ prename 's/\.txt$//' *.txt
$ ls
abcd1  abcd2  abcd3

Convertir le nom de fichier en majuscule

$ ls
abcd1.txt  abcd2.txt  abcd3.txt
$ prename 'y/a-z/A-Z/' *.txt
$ ls
ABCD1.txt  ABCD2.txt  ABCD3.txt

Renommer en enlevant les espaces du nom de fichier

$ ls
ab - cd 1.txt  a b c d 2.txt  abc - d3.txt
$ prename 's/ *//g' *.txt
$ ls
ab-cd1.txt  abcd2.txt  abc-d3.txt

Renommer en remplaçant les espaces par des underscores

$ ls
ab - cd 1.txt  a b c d 2.txt  abc - d3.txt
$ prename 's/\s+/_/g' *.txt
$ ls
ab_-_cd_1.txt  a_b_c_d_2.txt  abc_-_d3.txt

Rajouter un préfixe au nom de fichier

$ ls
abcd1.txt  abcd2.txt  abcd3.txt
$ prename 's/^/prefixe_/' *.txt
$ ls
prefixe_abcd1.txt  prefixe_abcd2.txt  prefixe_abcd3.txt

Rajouter un suffixe au nom de fichier

$ ls
abcd1.txt  abcd2.txt  abcd3.txt
$ prename 's/.txt$/_suffixe.txt/' *.txt
$ ls
abcd1_suffixe.txt  abcd2_suffixe.txt  abcd3_suffixe.txt

links

social