Lorsque vous travaillez avec Linux, vous pouvez rencontrer des utilitaires et des applications qui ne fonctionnent qu'avec des noms de fichiers en minuscules. Nous n'enregistrons généralement pas les fichiers dans ce format et nous devrons peut-être rechercher une solution de contournement qui convertit de manière récursive tous les noms de fichiers d'un dossier en minuscules. Dans cet article, nous allons vous montrer deux façons de convertir tous les noms de fichiers et de dossiers d'un chemin donné en minuscules, simplement via la ligne de commande.
Nous avons exécuté les commandes et procédures mentionnées dans cet article sur un système Ubuntu 18.04 LTS.
Voici comment lister le contenu de votre dossier à l'aide de la commande find :
$ find [nom_répertoire] -profondeur
Mon dossier Téléchargements, que j'utiliserai comme exemple pour cet article, contient tous les fichiers commençant par des lettres majuscules et en contient également quelques-uns entre les noms.
$ find Downloads -depth
Méthode 1 :Utilisation de la commande de renommage
Dans cette méthode, nous utiliserons les commandes Ubuntu find, Xargs et rename afin de renommer de manière récursive tous les fichiers/dossiers d'un répertoire donné.
Ouvrez votre ligne de commande Ubuntu, le Terminal, soit via la recherche du lanceur d'applications, soit via le raccourci Ctrl+Alt+T.
Voici la syntaxe de la commande que vous utiliserez :
$ find [nom_répertoire] -depth | xargs -n 1 renommer -v ‘s/(.*)\/([^\/]*)/$1\/\L$2/’ {} \;
Si la commande de renommage n'est pas installée sur votre système, vous risquez d'obtenir une erreur lorsque vous exécutez la commande ci-dessus. Vous pouvez installer renommer sur votre Ubuntu via la commande apt-get suivante :
$ sudo apt-get install rename
J'utiliserai la commande suivante pour convertir les noms de fichiers en minuscules dans mon répertoire Téléchargements :
$ find Downloads -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Lorsque j'ai répertorié à nouveau le contenu du répertoire, j'ai pu voir tous les noms de fichiers convertis en minuscules comme suit :
Méthode 2 :Utiliser un script pour renommer les fichiers
Dans cette méthode, nous utiliserons un script bash qui utilise les commandes find et mv afin de renommer de manière récursive les noms de fichiers et de dossiers d'un répertoire, y compris le nom du répertoire lui-même.
Ouvrez l'application Terminal et déplacez-vous vers le dossier bin comme suit :
$ cd ~bin
Maintenant, ouvrez un nouveau fichier de script dans l'un de vos éditeurs de texte préférés. Nous allons utiliser l'éditeur nano pour ouvrir un fichier de script vide du nom de lowercase_filenames.sh
$ sudo nano lowercase_filenames.sh
Dans ce fichier vide, ajoutez le script suivant.
#!/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 exit 0
Astuce : Au lieu de taper tout le script dans votre fichier bash, vous pouvez le copier à partir d'ici et le coller dans le terminal en utilisant Ctrl+Maj+V, ou en utilisant l'option Coller du menu contextuel.
Voici à quoi ressemblera votre fichier :
Maintenant, quittez le fichier via le raccourci Ctrl + X et enregistrez le fichier sur le "Enregistrer le tampon modifié?" invite en tapant Y puis en appuyant sur Entrée.
Afin de faire de ce fichier un script exécutable, exécutez la commande suivante dans votre Terminal :
$ sudo chmod +x lowercase_filenames.sh
Vous êtes maintenant prêt à utiliser le script sur n'importe lequel de vos dossiers.
Lorsque j'exécute le script sur mon dossier Téléchargements, je vois tous les noms de fichiers et de sous-dossiers convertis en minuscules comme suit :
Donc, ce sont les deux façons par lesquelles vous pouvez renommer les noms de fichiers en minuscules afin que l'application que vous utilisez ne manque pas de reconnaître les noms de fichiers en majuscules.