Comment renommer un répertoire sous Linux
Publié: 2022-06-16Renommer un répertoire sous Linux est facile et il existe de nombreuses façons de procéder. Du renommage d'un seul répertoire à la recherche et au renommage de plusieurs, voici comment procéder.
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 orthographier son nom, et nous voulons le corriger. Souvent, l'objectif d'un répertoire change au fil du temps ou au cours de la vie d'un projet, et vous souhaitez ajuster 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 les noms de répertoires en majuscules et vous aimeriez qu'ils soient en minuscules.
Peu importe la raison. renommer un répertoire ne fait rien aux 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 touchés.
Ne renommez pas les répertoires système. Changer le chemin d'accès aux fichiers système et aux commandes aura un effet néfaste sur le fonctionnement de votre ordinateur, c'est le moins qu'on puisse dire. Si vous devez utiliser sudo
pour renommer un répertoire, à moins que vous ne sachiez vraiment ce que vous faites, il est probable 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 la commande mv
. Ceci fait partie intégrante de chaque distribution Linux, il n'y a donc rien à installer.
La commande mv
a plus de 50 ans au moment de la rédaction. Il vient de l'aube d'Unix, lorsque les commandes courtes et cryptées étaient à la mode, probablement pour réduire le nombre de caractères qui devaient passer le long des lignes série lentes des télétypes et des terminaux muets à l'ordinateur réel.
Il signifie en fait "déplacer", et il peut être utilisé pour déplacer des fichiers d'un répertoire à l'autre. Si vous déplacez un fichier au même emplacement où il se trouve déjà et que vous lui donnez un nouveau nom, vous avez renommé le fichier. Et nous pouvons faire la même chose avec les répertoires.
Il y a deux sous-répertoires dans ce répertoire.
ls
Pour renommer un répertoire, nous utilisons la commande mv. Nous devons fournir le nom actuel du répertoire et le nouveau nom.
mv ancien travail archive-2
Si le répertoire que vous souhaitez renommer ne se trouve pas dans votre répertoire actuel, indiquez le chemin ainsi que le nom du répertoire.
mv ~/htg/ancien-travail ~/htg/archive-2
ls
Utilisation du navigateur de fichiers
Les navigateurs de fichiers sont capables de renommer les répertoires. La frappe dans l'application GNOME Files est F2. Mettre un répertoire en surbrillance et appuyer sur la touche F2 ouvre la boîte de dialogue "Renommer le dossier".
Tapez le nouveau nom et cliquez sur le bouton vert "Renommer".
Le répertoire est renommé pour vous.
C'est aussi simple que ça.
La commande de renommage
Si vos besoins sont plus compliqués que le simple renommage d'un répertoire, vous devrez peut-être utiliser la commande rename
. Cela vous permet d'utiliser des expressions Perl pour renommer des fichiers et des répertoires. Il fournit un moyen tout à fait plus puissant et plus flexible de renommer les répertoires.
Nous allons parler de la commande de rename
basée sur Perl. Il existe une autre commande plus ancienne appelée rename
qui fait partie des utilitaires de base de Linux. Vous aurez probablement besoin d'installer la commande Perl rename
que nous voulons utiliser.
Pour éviter les conflits de noms avec la commande rename
existante, la commande Perl rename
est appelée prename
sur Fedora et perl-rename
sur Manjaro. Sur Ubuntu, les commandes rename
et prename
sont toutes deux des liens symboliques qui se résolvent en un binaire appelé file-rename
.
Ainsi, sur Manjaro, la commande dont vous aurez besoin pour utiliser perl-rename
, et sur Fedora c'est prename
. Sur Ubuntu, vous pouvez utiliser rename
ou prename
.
Pour installer Perl rename, sur Ubuntu vous devez taper :
sudo apt installer renommer
Sur Fedora, la commande est :
sudo dnf prénom d'installation
Sur Manjaro, le paquet s'appelle perl-rename
.
sudo pacman -Sy perl-renommer
Assurez-vous d'utiliser la commande appropriée pour votre distribution si vous souhaitez travailler sur les exemples.
Premiers pas avec renommer
La commande rename
prend des expressions régulières Perl et les applique à un fichier ou un répertoire, ou un groupe de fichiers ou de répertoires.
Dans notre répertoire, nous avons une collection d'autres répertoires.
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.
renommer 'y/AZ/az/' *
ls
Tous les répertoires sont maintenant en minuscules, qu'ils soient entièrement en majuscules auparavant, ou qu'ils contiennent la lettre majuscule impaire.
Toute la magie est contenue dans l'expression. L'expression est entourée de guillemets simples " '
". C'est ce que signifie toute la commande.
- 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 de 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 deuxième plage comprend tous les caractères de « a » à « z ».
- * : Le caractère générique astérisque signifie appliquer ceci à tous les répertoires.
En d'autres termes, la commande se lit comme suit : "pour tous les répertoires, remplacez toutes les lettres majuscules par la lettre minuscule équivalente".
Évidemment, vous pouvez renommer un seul répertoire avec rename
, bien que cela sente l'exagération. Vous serez plus rapide en utilisant mv
.
renommer 's/gamma/epsilon-2/' *
ls
Le « s » dans cette expression signifie substitut. 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 aurait également correspondu à un répertoire appelé "gamma-zeta", par exemple, en le renommant "epsilon-2-zeta".
Nous pouvons éviter cela en ajoutant les métacaractères de début de chaîne " ^
" et de fin de chaîne " $
" à la première clause de l'expression.
ls
renommer '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 localiser les répertoires sur lesquels nous voulons rename
. Si nous avons un ensemble de répertoires imbriqués et que nous voulons renommer ceux qui se terminent par "-old" afin qu'ils se terminent par "-archive", nous pouvons y parvenir en utilisant find
et xargs
.
Nous devons utiliser xargs
car rename
n'accepte pas les entrées canalisées. La commande xargs
surmonte ce problème en acceptant l'entrée canalisée et en l'ajoutant à la ligne de commande d'une autre commande en tant que paramètre de ligne de commande.
Notre commande ressemble à ceci :
trouver . -depth -type d -name "*-old" | xargs -r renommer "s/old$/archive/"
- . : Nous disons find pour lancer la recherche dans le répertoire courant. Cela pourrait être n'importe quel chemin, bien sûr.
- -depth : Utilise une 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 de répertoires, pas de fichiers.
- -name "*-old" : L'indice de recherche. Nous recherchons des répertoires dont les noms se terminent par "-old".
- | : Nous dirigeons la sortie de find vers la commande
xargs
. - xargs -r : Le
-r
(pas d'exécution si vide) signifie ne pas exécuter la commande s'il n'y a pas de répertoires correspondants. - rename « s/old$/archive/ » : La commande de
rename
à exécuter.
Notre arborescence de répertoires ressemble à ceci avant la commande.
Nous lançons notre commande :
Et nous pouvons voir que tous les répertoires correspondants, y compris ceux imbriqués, ont été renommés.
Chevaux de course
Renommer un répertoire ne nécessite rien de plus que mv
. Si vous préférez les applications GUI, vous pouvez utiliser votre navigateur de fichiers. Si vous avez beaucoup de répertoires à renommer, et surtout s'ils sont dispersés dans une arborescence de répertoires, vous aurez besoin de la flexibilité de rename
.
CONNEXION: Comment gérer les fichiers à partir du terminal Linux : 11 commandes que vous devez connaître