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