Dans notre article précédent, nous avons décrit comment compter le nombre de fichiers et de sous-répertoires dans un répertoire donné. Ce guide vous montrera comment renommer tous les noms de fichiers et de répertoires en minuscules sous Linux.
Lire aussi :Comment trouver les meilleurs répertoires et fichiers (espace disque) sous Linux
Il existe plusieurs façons d'y parvenir, mais nous allons vous expliquer deux des méthodes les plus efficaces et les plus fiables. Pour les besoins de ce guide, nous avons utilisé un répertoire nommé Files
qui a la structure suivante :
# find Files -depth
1. Utiliser ensemble les commandes find, xargs et rename
rename est un simple utilitaire de ligne de commande pour renommer plusieurs fichiers à la fois sous Linux. Vous pouvez l'utiliser avec l'utilitaire de recherche pour renommer tous les fichiers ou sous-répertoires d'un répertoire particulier en minuscules comme suit :
$ find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Explication des options utilisées dans la commande ci-dessus.
-depth
– répertorie le contenu de chaque répertoire avant le répertoire lui-même.-n 1
– instruit xargs utiliser au plus un argument par ligne de commande à partir de find sortie.
Exemple de sortie après avoir renommé les fichiers et les sous-répertoires en minuscules dans Files
répertoire.
Une autre manière alternative d'utiliser les commandes find et mv dans un script comme expliqué ci-dessous.
2. Utilisation des commandes find et mv dans le script shell
Commencez par créer votre script (vous pouvez lui donner le nom que vous préférez) :
$ cd ~/bin $ vi rename-files.sh
Ajoutez ensuite le code ci-dessous.
#!/bin/bash #print usage if [ -z $1 ];then echo "Usage :$(basename $0) parent-directory" exit 1 fi #process all subdirectories and files in parent directory all="$(find $1 -depth)" for name in ${all}; do #set new name in lower case for files and directories new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')" #check if new name already exists if [ "${name}" != "${new_name}" ]; then [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!" fi done echo echo #list directories and file new names in lowercase echo "Directories and files with new names in lowercase letters" find $(echo $1 | tr 'A-Z' 'a-z') -depth exit 0
Enregistrez et fermez le fichier, puis rendez le script exécutable et exécutez-le :
$ chmod +x rename-files.sh $ rename-files.sh Files #Specify Directory Name
Vous pouvez également lire ces articles connexes suivants.
- Explication de "Tout est un fichier" et des types de fichiers sous Linux
- fswatch - Surveille les fichiers et les changements ou modifications de répertoire sous Linux
- Fasd :un outil en ligne de commande qui offre un accès rapide aux fichiers et aux répertoires
- FSlint – Comment rechercher et supprimer des fichiers en double sous Linux
Dans ce guide, nous vous avons expliqué comment renommer tous les fichiers et répertoires en minuscules sous Linux. Si vous rencontrez des erreurs, veuillez nous contacter via le formulaire de commentaires ci-dessous. Vous pouvez également nous proposer d'autres méthodes pour faire de même.