Liens rapides
Renommer un répertoire sous Linux est simple 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.
Renommer un dossier ne nuira pas à vos données
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. Peut-être avez-vous décompressé un fichier d’archive et créé une arborescence de répertoires avec les noms de répertoires en majuscules et vous les souhaitez en minuscules.
Quelle que soit la raison, renommer un répertoire n’a aucun effet sur les données qu’il contient. Cela 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 pas renommer les répertoires système. Changer le chemin d’accès aux fichiers et aux commandes système aura pour le moins un effet néfaste sur le fonctionnement de votre ordinateur. Si vous devez utiliser sudo
pour renommer un répertoire — à moins que vous 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 besoin c’est du mv
commande. Ceci fait partie intégrante de chaque distribution Linux, il n’y a donc rien à installer.
Le mv
le commandement a plus de 50 ans au moment de la rédaction de cet article. Il vient de l’aube d’Unix, lorsque les commandes courtes et énigmatiques étaient à la mode, probablement pour réduire le nombre de caractères qui devaient transmettre le long de lignes série lentes depuis les télétypes et les terminaux stupides jusqu’à l’ordinateur lui-même.
Il 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 vers le même emplacement où il se trouve déjà et 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 old-work 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/old-work ~/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 Fichiers GNOME est F2. La mise en surbrillance d’un répertoire et l’appui 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 Renommer
Si vos besoins sont plus compliqués que le simple renommage d’un répertoire, vous devrez peut-être utiliser le rename
commande. Cela vous permet d’utiliser des expressions Perl pour renommer des fichiers et des répertoires. Il fournit un moyen beaucoup plus puissant et flexible de renommer des répertoires.
Nous allons parler du système basé sur Perl rename
commande. Il existe une autre commande plus ancienne appelée rename
qui fait partie des utilitaires de base de Linux. Vous devrez probablement installer Perl rename
commande que nous voulons utiliser.
Pour éviter les conflits de noms avec l’existant rename
commande, le Perl rename
la commande est appelée prename
sur Fedora, et perl-rename
sur Manjaro. Sur Ubuntu, le rename
et prename
les commandes sont toutes deux des liens symboliques qui se résolvent en un binaire appelé file-rename
.
Donc, sur Manjaro, la commande que vous devrez 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 install rename
Sur 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 parcourir les exemples.
Premiers pas avec renommer
Le rename
La commande 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 annuaire, nous avons une collection d’autres annuaires.
ls
Leurs noms sont un mélange de minuscules, de majuscules et de casses mixtes. 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 quelques lettres majuscules.
Toute la magie est contenue dans l’expression. L’expression est entourée de guillemets simples « '
« . C’est ce que signifie toute la commande.
- oui: 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 comprend toutes les lettres de « A » à « Z » et la deuxième plage contient tous les caractères de « a » à « z ».
- *: Le caractère générique astérisque signifie l’appliquer à tous les répertoires.
En d’autres termes, la commande se lit comme suit : « pour tous les répertoires, remplacez les lettres majuscules par la lettre minuscule équivalente ».
Évidemment, vous pouvez renommer un seul répertoire avec rename
, même si cela semble exagéré. Vous serez plus rapide en utilisant mv
.
rename '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 tel 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 le début de la chaîne « ^
» et fin de chaîne « $
» métacaractères à la première clause de l’expression.
ls
rename 's/^gamma$/epsilon-2/' *
ls
Cela laisse le répertoire « epsilon-2 » intact.
Utiliser Renommer avec d’autres commandes
Nous pouvons utiliser d’autres commandes pour localiser les répertoires souhaités rename
travailler sur. Si nous avons un ensemble de répertoires imbriqués et que nous voulons renommer ceux qui se terminent par « -old » pour qu’ils se terminent par « -archive », nous pouvons y parvenir en utilisant find
et xargs
.
Nous devons utiliser xargs
parce que rename
n’accepte pas les entrées canalisées. Le xargs
La commande surmonte ce problème en acceptant l’entrée redirigé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 :
find . -depth -type d -name "*-old" | xargs -r rename "s/old$/archive/"
- .: Nous disons à find de commencer la recherche dans le répertoire courant. Cela pourrait être n’importe quelle voie, bien sûr.
- -profondeur: utilisez une recherche en profondeur d’abord. Cela signifie que le contenu des sous-répertoires imbriqués les plus profonds est traité avant les sous-répertoires supérieurs.
- -type d: Recherchez des répertoires, pas des fichiers.
- -name « *-ancien »: L’indice de recherche. Nous recherchons des répertoires dont les noms se terminent par « -old ».
- |: Nous redirigeons la sortie de find vers le
xargs
commande. - 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. - renommer « s/old$/archive/ »: Le
rename
commande à exécuter.
Notre arborescence de répertoires ressemble à ceci avant la commande.
Nous exécutons 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
.