En mars de l'année dernière, mon collègue, Pulkit Chandak, a écrit un excellent article fournissant les meilleurs moyens de supprimer, copier, déplacer et renommer des fichiers via la ligne de commande Linux. Cet article vise à approfondir la façon de renommer des fichiers sous Linux.
Avant de commencer, comprenez que de nombreuses commandes CLI peuvent vous aider à renommer des fichiers par lots, et nous y ferons allusion. Cependant, cet article n'est pas cela. Ici, vous apprendrez à renommer un fichier à l'aide des commandes nativement proposées par Linux.
mv commande - la meilleure méthode pour renommer les fichiers
La méthode la plus ancienne et la plus éprouvée pour renommer des fichiers est avec le mv commande. Je m'en souviens bien de l'époque où je portais des vêtements d'homme plus jeune, en tant qu'administrateur Unix.
Par exemple, j'ai un fichier dans mon répertoire nommé tevin.txt . Cependant, je dois le changer en michael.txt . Pour ce faire avec le mv commande est facile.
# mv tevin.txt michael.txt
Non seulement le mv commande renommer tevin.txt et créez michael.txt , mais tevin.txt est parti aussi.
renommer commande - la meilleure méthode pour renommer par lots
Le renommer L'utilitaire est une autre option pour renommer vos fichiers, mais c'est pour le renommage par lots des fichiers. Ce n'est pas comme votre commande Linux habituelle. Au lieu de cela, contrairement à la plupart des commandes Linux écrites en C, le renommer La commande est écrite en Perl et est une partie d'un script qui réside dans /usr/bin/ sur la plupart des distributions Linux. L'installation est simple.
# sudo apt install rename
La syntaxe de la commande est la suivante :
# rename 's/old-name/new-name/' files
Comme vous le voyez, il nécessite une expression Perl obligatoire entre ‘ ‘ (voir ‘s/ancien-nom/nouveau-nom’ dans l'exemple de syntaxe ci-dessus. Cependant, il est également livré avec des arguments facultatifs. Ce sont :
- -v – Verbose :imprime les noms des fichiers renommés avec succès
- -n – Aucune action :imprimez les noms des fichiers à renommer, mais ne renommez pas
- -f – Écraser :autoriser l'écrasement des fichiers existants
- -h – Aide :imprimer SYNOPSIS et OPTIONS
- -m – Manuel :imprimer la page de manuel
- -V – Version :affiche le numéro de version
- -e – Expression :code pour agir sur le nom des fichiers
- -Relevé électronique :code pour agir sur le nom des fichiers, comme -e mais terminé par ';'
# rename [-v] [-n] [-f] perlexpr [files]
Utilisons la syntaxe de base pour renommer les fichiers dans notre ~/personal répertoire pour renommer tous les .txt fichiers vers .doc fichiers.
# rename 's/\.txt$/.doc/' *
Comme vous pouvez le constater, l'exemple a réussi. Renommez maintenant tous les fichiers en .txt avec le -v Option (verbeux).
# rename -v 's/\.doc$/.txt/' *
Non seulement avons-nous réussi à renommer tous nos fichiers en .txt extension, mais l'option -v nous permet également de connaître exactement les modifications apportées.
Essayons-en un de plus. Dans cet exemple, nous mettrons en majuscule la première lettre de tous les noms de fichiers. Nous utiliserons également l'option -v une fois de plus pour voir ce qui se passe.
# rename -v 's/./\U$&/' *
Assez lisse, non ?
Cependant, les options et la syntaxe Perl requises prêtent parfois à confusion. La maîtrise de la commande prend du temps. Je vous recommande fortement d'utiliser le -n option (aucune action) pour "tester" exécuter le renommer commande avant de s'y engager.
Autres commandes pour renommer les fichiers
Il existe une pléthore d'autres commandes que vous pouvez utiliser pour renommer des fichiers par lots, telles que mmv , renameutils , qmv , qcp , imv , icp , et vimv . Cependant, le mv La commande a été et continuera d'être ma commande "aller à" pour renommer les fichiers sur la ligne de commande, à moins que vous ne renommiez par lots. Si le renommage par lots, je m'en tiens à renommer .
Options de l'interface graphique pour renommer les fichiers
Si vous disposez des autorisations appropriées, vous pouvez toujours renommer vos fichiers via l'interface graphique, en utilisant un gestionnaire de fichiers tel que Thunar, Dolphin ou Nautilus. En outre, il existe des utilitaires tels que Métamorphose2, KRename, pyRenamer et bien d'autres qui existent strictement pour renommer les fichiers par lots dans l'interface graphique. Installons l'un de mes favoris, pyRenamer, et testons-le.
L'installation de pyRenamer est simple.
# sudo apt install pyrenamer
Après l'installation, démarrez pyRenamer depuis le terminal.
# pyrenamer
Vous verrez que vous disposez de nombreux onglets et options pour renommer vos fichiers par lots, comme Patterns , Remplacements , etc. Pour notre dernier exemple, nous allons renommer les fichiers que nous avons mis en majuscules dans notre exemple précédent en minuscules à nouveau.
Accédez au bon répertoire (/home/mtravisrose/personal ). Notez nos trois fichiers dans la fenêtre en haut à droite. Sélectionnez les substitutions languette. Sous Substitutions courantes , vérifiez la capitalisation box, et Tous en minuscules . Cliquez sur Aperçu et assurez-vous que l'option attendue apparaît dans la fenêtre en haut à droite.
Une fois satisfait que les noms de fichiers renommés dans la fenêtre en haut à droite sont comme vous le souhaitez, cliquez sur Renommer s'engager.
Malheureusement, la documentation de l'outil est rare et l'aide propose uniquement À propos option. Si vous utilisez le programme comme utilitaire de renommage de fichier batch GUI, ce sera un travail d'essais et d'erreurs. C'est peut-être pour cette raison que vous devez cliquer sur Aperçu avant de valider vos modifications ?
Conclusion
Bien qu'il existe de nombreuses façons de renommer vos fichiers, dont la plupart peuvent être facilement réalisées via l'interface graphique mentionnée dans notre article, je vous encourage fortement à utiliser la ligne de commande et le mv commande pour renommer un seul fichier. Si le renommage par lots, le renommer commande est la route que vous souhaitez emprunter. Plus vous passerez de temps dans le terminal, plus vous serez un utilisateur Linux avisé.