Comment renommer un répertoire sous Linux

Comment renommer un répertoire sous Linux

Renommer un répertoire sous Linux est facile et il existe de nombreuses façons de le faire. Voici comment procéder, du renommage d’un répertoire à la recherche et au renommage de plusieurs.

Vos données sont en sécurité

Renommer des répertoires est quelque chose que nous devons tous faire de temps en temps.

Nous pouvons créer un répertoire et mal orthographié son nom et nous voulons le réparer. Souvent, l’objectif d’un répertoire change au fil du temps ou au cours de la vie d’un projet, et vous souhaitez modifier le nom pour refléter sa nouvelle utilisation. Vous avez peut-être décompressé un fichier d’archive et il a créé une arborescence de répertoires avec des noms de répertoires en majuscules et vous voulez qu’ils soient en minuscules.

Peu importe la cause. renommer un répertoire ne fait rien avec les données qu’il contient. Il modifie le chemin d’accès à ces données, mais les fichiers et répertoires à l’intérieur de votre répertoire renommé ne sont pas affectés.

Ne renommez pas les répertoires système. Changer le chemin d’accès aux fichiers système et aux commandes, pour ne pas dire plus, affectera négativement le fonctionnement de votre ordinateur. Si vous devez utiliser sudopour renommer un répertoire – à moins que vous ne sachiez vraiment ce que vous faites – il y a de fortes chances que vous ne devriez pas le renommer.

Utilisation de la commande mv

Dans les cas les plus simples, tout ce dont nous avons vraiment besoin est une mvcommande. Il fait partie intégrante de chaque distribution Linux, il n’y a donc rien à installer.

Au mvmoment d’écrire ces lignes, l’équipe a plus de 50 ans. Cela remonte aux premiers jours d’Unix, lorsque les commandes courtes et cryptées étaient à la mode, probablement pour réduire le nombre de caractères qui devaient voyager sur des lignes série lentes depuis les télétypes et les terminaux muets jusqu’au véritable ordinateur.

Cela signifie en fait « déplacer » et peut être utilisé pour déplacer des fichiers d’un répertoire à l’autre. Si vous déplacez un fichier au même emplacement qu’il se trouve déjà et que vous lui donnez un nouveau nom, vous renommerez le fichier. Et nous pouvons faire la même chose avec les répertoires.

Ce répertoire a deux sous-répertoires.

ls

Pour renommer un répertoire, nous utilisons la commande mv. Nous devons spécifier le nom du répertoire actuel et le nouveau nom.

mv old-work archive-2

Si le répertoire que vous souhaitez renommer ne se trouve pas dans votre répertoire actuel, indiquez le chemin et le nom du répertoire.

mv ~/htg/old-work ~/htg/archive-2ls

Utilisation du navigateur de fichiers

Les navigateurs de fichiers peuvent renommer les répertoires. La clé dans l’application GNOME Files est F2. Sélectionnez un répertoire et appuyez sur F2 pour ouvrir la boîte de dialogue Renommer le dossier.

Entrez un nouveau nom et cliquez sur le bouton vert Renommer.

Le répertoire a été renommé pour vous.

C’est si simple.

Renommer la commande

Si vos besoins sont plus complexes que simplement renommer un répertoire, vous devrez peut-être utiliser renamela commande. Cela vous permet d’utiliser des expressions Perl pour renommer des fichiers et des répertoires. Il fournit un moyen plus puissant et plus flexible de renommer les répertoires.

Nous allons parler d’une commande basée sur Perl rename. Il existe une autre commande plus ancienne rename qui fait partie des principaux utilitaires Linux. Vous devrez probablement installer la commande Perl renameque nous voulons utiliser.

Pour éviter les conflits de nommage avec une renamecommande existante, la commande Perl renameest invoquée prenamedans Fedora et perl-renameManjaro. Dans Ubuntu, les commandes renameet prenamesont des liens symboliques qui se résolvent en un fichier binaire nommé file-rename.

Ainsi, dans Manjaro, vous devrez utiliser la commande perl-rename, et dans Fedora , vous devrez utiliser prename. Sur Ubuntu, vous pouvez utiliser renamesoit prename.

Pour installer Perl rename, sur Ubuntu vous devez taper :

sudo apt install rename

Dans Fedora, la commande est :

sudo dnf install prename

Sur Manjaro, le package s’appelle perl-rename.

sudo pacman -Sy perl-rename

Assurez-vous d’utiliser la commande appropriée pour votre distribution si vous souhaitez travailler sur les exemples.

Premiers pas avec le renommage

La commande renameprend des expressions régulières Perl et les applique à un fichier ou un répertoire, ou à un groupe de fichiers ou de répertoires.

Notre catalogue contient une collection d’autres catalogues.

ls

Leurs noms sont un mélange de minuscules, de majuscules et de casse mixte. Nous pouvons tous les convertir en minuscules avec une expression appropriée.

rename 'y/A-Z/a-z/' *ls

Tous les répertoires sont désormais en minuscules, qu’ils soient entièrement en majuscules auparavant ou qu’ils contiennent une lettre majuscule impaire.

Toute la magie est dans l’expression. L’expression est entourée de guillemets simples  » '« . C’est ce que toute l’équipe veut dire.

  • y : cela signifie rechercher n’importe quel caractère dans la première plage de caractères et le remplacer par le caractère correspondant dans la deuxième plage de caractères.
  • /AZ/az/ : la première plage est constituée de toutes les lettres de « A » à « Z », et la seconde de tous les caractères compris entre « a » et « z ».
  • * : Un astérisque signifie que cela s’applique à tous les répertoires.

En d’autres termes, la commande indique « pour tous les répertoires, remplacez toutes les lettres majuscules par leurs lettres minuscules équivalentes ».

Évidemment, vous pouvez renommer un seul répertoire avec rename, bien que cela semble redondant. Vous serez plus rapide en utilisant mv.

rename 's/gamma/epsilon-2/' *ls

Le « S » dans cette expression signifie remplacement. Il vérifie chaque répertoire pour voir si son nom est « gamma ». Si c’est le cas, il le remplace par « epsilon-2 ». Sachez cependant que cela correspondrait également à un répertoire appelé « gamma-zeta », par exemple, en le renommant « epsilon-2-zeta ».

Ceci peut être évité en ajoutant les métacaractères de début de ligne  » ^ » et de fin de ligne  » $ » à la première clause de l’expression.

lsrename 's/^gamma$/epsilon-2/' *ls

Cela laisse le répertoire « epsilon-2 » intact.

Utilisation de renommer avec d’autres commandes

Nous pouvons utiliser d’autres commandes pour trouver les répertoires sur lesquels nous voulons renametravailler. Si nous avons un ensemble de répertoires imbriqués et que nous voulons renommer tout ce qui se termine par « -old » pour finir par « -archive », nous pouvons y parvenir en utilisant findet xargs.

Nous devons utiliser xargscar renameil n’accepte pas les entrées canalisées. La commande xargssurmonte ce problème en prenant une entrée canalisée et en ajoutant une autre commande à la ligne de commande en tant que paramètre de ligne de commande.

Notre équipe ressemble à ceci :

find. -depth -type d -name "*-old"| xargs -r rename "s/old$/archive/"

  • .: Nous disons find pour lancer la recherche dans le répertoire courant. Bien sûr, cela peut être dans les deux sens.
  • -depth : utilise la recherche en profondeur d’abord. Cela signifie que le contenu des sous-répertoires imbriqués plus profondément est traité avant les sous-répertoires supérieurs.
  • -type d : recherche des répertoires, pas des fichiers.
  • -name « *-old »: indice de recherche. Nous recherchons des répertoires dont les noms se terminent par « -old ».
  • | : Nous dirigeons la sortie de la commande find vers xargsla commande.
  • xargs -r : -r(ne pas exécuter si vide) signifie ne pas exécuter la commande s’il n’y a pas de répertoires appropriés.
  • renommer « s/old$/archive/ »: renamecommande à exécuter.

Notre arborescence de répertoires ressemble à ceci avant la commande.

Exécutons notre commande :

Et nous pouvons voir que tous les répertoires pertinents, y compris les sous-répertoires, ont été renommés.

Vous n’avez besoin de rien d’autre que mv. Si vous préférez les applications GUI, vous pouvez utiliser le navigateur de fichiers. Si vous devez renommer un grand nombre de répertoires, en particulier s’ils sont éparpillés dans l’arborescence des répertoires, vous aurez besoin de flexibilité rename.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *