GNU/Linux >> Tutoriels Linux >  >> Linux

Renommer tous les fichiers et noms de répertoires en minuscules sous Linux

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.

  1. Explication de "Tout est un fichier" et des types de fichiers sous Linux
  2. fswatch - Surveille les fichiers et les changements ou modifications de répertoire sous Linux
  3. Fasd :un outil en ligne de commande qui offre un accès rapide aux fichiers et aux répertoires
  4. 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.


Linux
  1. Trouver des fichiers et des répertoires sous Linux comme un pro

  2. Trouver tout [nom de fichier].mp4 et renommer [nom de fichier].audio ?

  3. Supprimer les fichiers et les répertoires par leurs noms. Aucun fichier ou répertoire de ce nom?

  4. Comment trouver tous les fichiers épars sous Linux

  5. Comment renommer tous les dossiers et fichiers en minuscules sous Linux ?

Rechercher la commande sous Linux (Rechercher des fichiers et des répertoires)

Comment renommer des fichiers et des répertoires sous Linux

Comment compter les fichiers dans le répertoire sous Linux

Trouvez facilement des fichiers et des répertoires sur Linux

Linux :rechercher le nombre de fichiers dans un répertoire et des sous-répertoires

Comment renommer tous les fichiers avec des caractères spéciaux et des espaces dans un répertoire ?