Android

Comment renommer des fichiers et des répertoires sous Linux

Commandes de base Linux - Ep14 - déplacer et renommer un fichier: mv

Commandes de base Linux - Ep14 - déplacer et renommer un fichier: mv

Table des matières:

Anonim

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 , la destination doit être un répertoire. Dans ce cas, les fichiers source sont déplacés vers le répertoire cible.Si vous spécifiez un seul fichier comme source et que la cible de destination 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 comme source et fichier unique comme cible de destination .

Par exemple, pour renommer le fichier file1.txt en file2.txt vous devez exécuter:

mv file1.txt file2.txt

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.

renommer le terminal mv