Renommer des fichiers est l'une des tâches les plus élémentaires que vous devez souvent effectuer sur un système Linux. Vous pouvez renommer les fichiers à l'aide d'un gestionnaire de fichiers graphique ou via le terminal de ligne de commande.
Renommer un seul fichier est facile, mais renommer plusieurs fichiers à la fois peut être un défi, en particulier pour les utilisateurs qui découvrent Linux.
Dans ce tutoriel, nous allons vous montrer comment utiliser le mv
et rename
commandes pour renommer les fichiers et les répertoires.
Renommer des fichiers avec le mv
Commande #
Le mv
command(short of move) est utilisé pour renommer ou déplacer des fichiers d'un emplacement à un autre. La syntaxe du mv
commande est la suivante :
mv [OPTIONS] source destination
Le source
peut être un ou plusieurs fichiers, ou répertoires et destination
peut être un seul fichier ou répertoire.
- Si vous spécifiez plusieurs fichiers comme
source
, ladestination
doit être un répertoire. Dans ce cas, lesource
les fichiers sont déplacés vers le répertoire cible. - Si vous spécifiez un seul fichier comme
source
, et ladestination
cible est un répertoire existant, alors le fichier est déplacé vers le répertoire spécifié. - Pour renommer un fichier, vous devez spécifier un seul fichier en tant que
source
et un seul fichier commedestination
cible.
Par exemple, pour renommer le fichier file1.txt
comme file2.txt
vous exécuteriez :
mv file1.txt file2.txt
Renommer plusieurs fichiers avec le mv
Commande #
Le mv
La commande ne peut renommer qu'un seul fichier à la fois, mais elle peut être utilisée en conjonction avec d'autres commandes telles que find
ou à l'intérieur de bash for
ou while
boucles pour renommer plusieurs fichiers.
L'exemple suivant montre comment utiliser la boucle Bash for pour renommer tous les .html
fichiers dans le répertoire courant en changeant le .html
extension à .php
.
for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
Analysons le code ligne par ligne :
- La première ligne crée un
for
boucle et parcourt une liste de tous les fichiers bordant avec.html
. - La deuxième ligne s'applique à chaque élément de la liste et déplace le fichier vers un nouveau en remplaçant
.html
avec.php
. La partie${file%.html}
utilise l'expansion des paramètres du shell pour supprimer le.html
partie du nom de fichier. done
indique la fin du segment de boucle.
Voici un exemple utilisant mv
en combinaison avec find
pour obtenir la même chose que ci-dessus :
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
Le find
la commande transmet tous les fichiers se terminant par .html
dans le répertoire courant en mv
un par un en utilisant le -exec
option. La chaîne {}
est le nom du fichier en cours de traitement.
Comme vous pouvez le voir dans les exemples ci-dessus, renommer plusieurs fichiers en utilisant le mv
n'est pas une tâche facile car elle nécessite une bonne connaissance des scripts Bash.
Renommer des fichiers avec le rename
Commande #
Le rename
La commande est utilisée pour renommer plusieurs fichiers. Cette commande est plus avancée que mv
car cela nécessite une connaissance de base des expressions régulières.
Il existe deux versions du rename
commande avec une syntaxe différente. Dans ce tutoriel, nous utiliserons la version Perl du rename
commande. Si cette version n'est pas installée sur votre système, vous pouvez facilement l'installer à l'aide du gestionnaire de packages de votre distribution.
-
Installer
rename
sur Ubuntu et Debiansudo apt install rename
-
Installer
rename
sur CentOS et Fedorasudo yum install prename
-
Installer
rename
sur Arch Linuxyay perl-rename ## or yaourt -S perl-rename
La syntaxe pour le rename
commande est la suivante :
rename [OPTIONS] perlexpr files
Le rename
la commande renommera les files
selon le perlexpr
spécifié expression régulière. Vous pouvez en savoir plus sur les expressions régulières perl ici.
L'exemple suivant modifiera tous les fichiers avec l'extension .html
vers .php
:
rename 's/.html/.php/' \*.html
Vous pouvez utiliser le -n
option pour imprimer les noms des fichiers à renommer, sans les renommer.
rename -n 's/.html/.php/' \*.html
La sortie ressemblera à ceci :
rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)
Par défaut, le rename
La commande n'écrase pas les fichiers existants. Passez le -f
option permettant d'écraser les fichiers existants :
rename -f 's/.html/.php/' \*.html
Vous trouverez ci-dessous quelques exemples plus courants d'utilisation de la commande rename
commande :
-
Remplacer les espaces dans les noms de fichiers par des traits de soulignement
rename 'y/ /\_/' \*
-
Convertir les noms de fichiers en minuscules
rename 'y/A-Z/a-z/' \*
-
Convertir les noms de fichiers en majuscules
rename 'y/a-z/A-Z/' \*
Conclusion #
Nous vous avons montré comment utiliser le mv
et rename
commandes pour renommer les fichiers.
Il existe également d'autres commandes pour renommer les fichiers sous Linux, telles que mmv
. Les nouveaux utilisateurs de Linux qui sont intimidés par la ligne de commande peuvent utiliser des outils de renommage par lots GUI tels que Métamorphose.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.