Commandes de base Linux - Ep14 - déplacer et renommer un fichier: mv
Table des matières:
- Renommer des fichiers avec la commande mv
- Renommer plusieurs fichiers avec la commande mv
- Renommer des fichiers avec la commande rename
- Conclusion
Renommer des fichiers et des répertoires est l'une des tâches les plus élémentaires que vous devez souvent effectuer sur un système Linux.
Renommer un seul fichier est facile, mais renommer plusieurs fichiers à la fois peut être un défi, en particulier pour les utilisateurs débutants sous Linux. Vous pouvez renommer des fichiers à l'aide d'un gestionnaire de fichiers GUI ou via le terminal de ligne de commande.
Dans ce didacticiel, nous allons vous montrer comment utiliser les commandes
mv
et
rename
pour renommer des fichiers et des répertoires.
Renommer des fichiers avec la commande mv
La commande
mv
(short from move) est utilisée pour renommer ou déplacer des fichiers d'un emplacement à un autre. La syntaxe de la commande
mv
est la suivante:
mv source destination
La
source
peut être un ou plusieurs fichiers ou répertoires et la
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, les fichierssource
sont déplacés vers le répertoire cible.Si vous spécifiez un seul fichier commesource
et que la cible dedestination
est un répertoire existant, le fichier est déplacé vers le répertoire spécifié. Pour renommer un fichier, vous devez spécifier un fichier unique commesource
et fichier unique comme cible dedestination
.
Par exemple, pour renommer le fichier
file1.txt
en
file2.txt
vous devez exécuter:
Renommer plusieurs fichiers avec la commande mv
La commande
mv
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 inside bash for or while boucles pour renommer plusieurs fichiers.
L'exemple suivant montre comment utiliser la boucle Bash for pour renommer tous les fichiers
.html
répertoire en cours en modifiant l'extension
.html
en
.php
.
for f in *.html; do mv -- "$f" "${f%.html}.php" done
Analysons le code ligne par ligne:
- La première ligne crée une boucle for et parcourt une liste de tous les fichiers en bordure avec
.html
. La deuxième ligne s'applique à chaque élément de la liste et déplace le fichier vers une nouvelle en remplaçant.html
par.php
. La partie${file%.html}
utilise l'expansion du paramètre shell pour supprimer la partie.html
du nom de fichier.done indique la fin du segment de boucle.
Nous pouvons également utiliser la commande
mv
en combinaison avec
find
pour obtenir le même résultat que ci-dessus.
find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;
La commande find transmet tous les fichiers se terminant par
.html
dans le répertoire en cours à la commande
mv
un par un à l'aide du commutateur
-exec
. 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 à l'aide de la commande
mv
n'est pas une tâche facile car cela nécessite une bonne connaissance des scripts Bash.
Renommer des fichiers avec la commande rename
La commande
rename
est utilisée pour renommer plusieurs fichiers. Cette commande est plus avancée que
mv
car elle nécessite une connaissance de base des expressions régulières.
Il existe deux versions de la commande
rename
avec une syntaxe différente. Dans ce tutoriel, nous utiliserons la version perl de la commande
rename
. 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 renommer sur Ubuntu et Debian
sudo apt install rename
Installer renommer sur CentOS et Fedora
sudo yum install prename
Installer renommer sur Arch Linux
yay perl-rename ## or yaourt -S perl-rename
La syntaxe de la commande
rename
est la suivante:
rename perlexpr files
La commande rename renommera tous les
files
fonction de l'expression régulière
perlexpr
spécifiée. Vous pouvez à propos des expressions régulières perl ici.
Par exemple, la commande suivante changera tous les fichiers avec l'extension
.html
en
.php
:
rename 's/.html/.php/' *.html
Vous pouvez utiliser l'argument
-n
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, la commande renommer n'écrasera pas les fichiers existants. Passez l'argument
-f
pour autoriser l'écrasement des fichiers existants.
rename -f 's/.html/.php/' *.html
Vous trouverez ci-dessous quelques exemples courants d'utilisation de la commande renommer:
-
Remplacer les espaces dans les noms de fichiers par des traits de soulignement
rename 'y/ /_/' *
Convertir les noms de fichiers en minuscules
rename 'y/AZ/az/' *
Convertir les noms de fichiers en majuscules
rename 'y/az/AZ/' *
Conclusion
À présent, vous devriez avoir une bonne compréhension de l'utilisation des commandes
mv
et
rename
pour renommer des fichiers. Bien sûr, il existe d'autres commandes pour renommer des fichiers sous Linux comme
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 le Métamorphose.
Comment copier des fichiers et des répertoires sous Linux
La copie de fichiers et de répertoires est l'une des tâches les plus courantes que vous effectuerez lorsque vous travaillerez sur la ligne de commande. Sous Linux, il existe plusieurs commandes pour copier des fichiers avec cp et rsync étant les outils les plus utilisés.
Comment déplacer des fichiers et des répertoires sous Linux (commande mv)
Le déplacement de fichiers et de répertoires est l'une des tâches les plus élémentaires que vous devez souvent effectuer sur un système Linux. Dans ce didacticiel, nous expliquerons comment utiliser la commande mv pour déplacer des fichiers et des répertoires.
Renommer la commande sous Linux (renommer plusieurs fichiers)
La commande rename renomme les fichiers donnés en remplaçant l'expression de recherche dans leur nom par le remplacement spécifié.