La possibilité de modifier les noms de fichiers et de répertoires est l'une des principales compétences dont chaque utilisateur Linux a besoin. Cet article continue la série d'articles Bash et montre comment utiliser diverses méthodes telles que le gestionnaire de fichiers, mv et les utilitaires de renommage en combinaison avec des constructions de recherche et de boucle bash. Améliorez vos compétences Linux en seulement 3 minutes !
Deux façons s'offrent à vous pour le faire :
- Gestionnaire de fichiers.
- Terminal de ligne de commande.
Utiliser le gestionnaire de fichiers
L'un des moyens les plus simples de renommer des fichiers et des répertoires sous Linux pour les nouveaux utilisateurs consiste à utiliser Midnight Commander.
Midnight Commander - est un gestionnaire de fichiers basé sur la console cloné du célèbre Norton Commander.
Pour installer Midnight Commander sous Ubuntu :
$ sudo apt-get update
$ sudo apt-get -y install mc
Pour CentOS/Fedora/RHEL, utilisez un autre gestionnaire de packages :
$ sudo yum -y install mc
Pour lancer Midnight Commander, exécutez mc commande.
Vous devez utiliser les flèches du clavier pour déplacer le sélecteur de fichier. Pour basculer entre les écrans de gauche et de droite, vous devez utiliser l'onglet clé. Vous pouvez également utiliser votre souris, mais vous êtes limité à sélectionner uniquement les fichiers visibles à l'écran.
Pour renommer le fichier ou le répertoire, placez le curseur dessus et appuyez sur F6 . Si vous avez oublié la clé exacte, utilisez votre souris pour sélectionner Déplacer/Renommer dans le menu Fichier.
Voyons maintenant comment renommer les fichiers et les répertoires en utilisant mv et renommer commandes.
commande "mv"
Le mv la commande vous aide à m ov e ou renommer les fichiers et répertoires de l'emplacement source vers l'emplacement de destination. La syntaxe de la commande est la suivante :
$ mv [OPTIONS] source destination
La source et destination peut être un fichier ou un répertoire.
Pour renommer file1.txt vers fichier2.txt en utilisant mv, exécutez la commande suivante :
$ mv file1.txt file2.txt
Pour modifier le nom du dossier1 répertoire vers dossier2 , utilisez la commande suivante :
$ mv folder1 folder2
Renommer plusieurs fichiers à la fois
Le mv L'utilitaire ne peut renommer qu'un seul fichier à la fois, mais vous pouvez l'utiliser avec d'autres commandes pour renommer plusieurs fichiers. Ces commandes incluent rechercher et Bash pour et pendant boucles.
Par exemple, imaginons que vous deviez modifier l'extension de fichier pour un type de fichier spécifique dans un répertoire. Dans l'exemple suivant, nous renommons tous les fichiers HTML et changeons leur extension de html en php .
Voici l'exemple structure du dossier :
$ tree example
example
├── index.html
├── page1.html
├── page2.html
└── page3.html
0 directories, 4 files
Maintenant, utilisons la construction de boucle for Bash suivante dans l'exemple répertoire :
$ cd example
$ for f in *.html; do
mv "$f" "${f%.html}.php"
done
Ici, nous sommes entrés dans l'exemple annuaire. Ensuite, nous avons exécuté le mv commande dans Bash for-loop (la commande entre for et terminé mots-clés).
Voici ce qui se passe :
- La boucle for parcourt les fichiers se terminant par .html et en mettant chaque nom de fichier dans la variable f .
- Puis mv l'utilitaire modifie l'extension de chaque fichier f depuis .html fichier en .php . Une partie de l'expression ${f%.html} est responsable de la suppression du .html à partir du nom du fichier. Une expression complète "${f%.html}.php" ajoutera .php au nom du fichier sans .html partie.
Voici le résultat attendu :
$ ls -l
total 0
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 index.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page1.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page2.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page3.php
commande "find"
Utiliser rechercher est l'un des moyens les plus courants d'automatiser les opérations de fichiers et de répertoires sous Linux.
Dans l'exemple ci-dessous, nous utilisons la recherche pour atteindre le même objectif et changer l'extension de fichier.
La découverte l'utilitaire trouve tous les fichiers se terminant par .html et utilise le -exec argument pour passer chaque nom de fichier trouvé au script shell sh écrit sur une ligne.
$ find . -depth -name "*.html" -exec sh -c 'f="{}"; mv "$f" "${f%.html}.php"' \;
Dans la ligne de script sh, nous définissons la variable f avec la valeur du nom de fichier f=”{}” , nous exécutons alors le familier mv commande. Un point-virgule est utilisé pour séparer la commande de jeu de variables du mv commande.
commande "renommer"
Dans certains cas, il est plus facile d'utiliser le renommer commande au lieu de mv . Et vous pouvez l'utiliser avec des expressions régulières sans combiner avec d'autres commandes Linux.
Voici la syntaxe pour le renommer commande :
$ rename [OPTIONS] regexp files
Par exemple, renommons tous .php fichiers vers .html :
$ ls
index.php page1.php page2.php page3.php
$ rename 's/.php/.html/' *.php
$ ls
index.html page1.html page2.html page3.html
Si vous souhaitez imprimer les noms des fichiers que vous avez sélectionnés pour renommer, vous pouvez utiliser la commande suivante :
$ rename -n 's/.html/.php/' *.html
rename(index.html, index.php)
rename(page1.html, page1.php)
rename(page2.html, page2.php)
rename(page3.html, page3.php)
$ ls
index.html page1.html page2.html page3.html
Résumé
Dans cet article, vous avez appris à modifier les noms de fichiers et de répertoires sous Linux de différentes manières. Nous espérons que cet article vous a été utile. Si oui, s'il vous plaît, aidez-nous à le diffuser dans le monde.