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, ladestinationdoit être un répertoire. Dans ce cas, lesourceles fichiers sont déplacés vers le répertoire cible. - Si vous spécifiez un seul fichier comme
source, et ladestinationcible 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
sourceet un seul fichier commedestinationcible.
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
forboucle 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
.htmlavec.php. La partie${file%.html}utilise l'expansion des paramètres du shell pour supprimer le.htmlpartie du nom de fichier. doneindique 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
renamesur Ubuntu et Debiansudo apt install rename -
Installer
renamesur CentOS et Fedorasudo yum install prename -
Installer
renamesur 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.