GNU/Linux >> Tutoriels Linux >  >> Linux

Comment renommer des fichiers et des répertoires sous Linux

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

    sudo apt install rename
  • Installer rename sur CentOS et Fedora

    sudo yum install prename
  • Installer rename sur Arch Linux

    yay 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.


Linux
  1. Comment renommer des fichiers sous Linux

  2. Comment archiver des fichiers et des répertoires sous Linux [Partie 2]

  3. Comment archiver des fichiers et des répertoires sous Linux [Partie 1]

  4. Comment renommer un répertoire sous Linux

  5. Comment rechercher et supprimer des répertoires et des fichiers vides sous Linux

Comment renommer un ou plusieurs fichiers sous Linux

Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux

Comment renommer des fichiers et des répertoires dans Ubuntu 20.04

Comment renommer des fichiers et des répertoires sous Linux

Comment copier des fichiers et des répertoires dans un terminal Linux

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux