Comment utiliser Bash pour modifier l'extension de fichier de plusieurs fichiers dans un dossier

Comment utiliser Bash pour modifier l'extension de fichier de plusieurs fichiers dans un dossier
Ce tutoriel discutera d'un moyen rapide d'utiliser Bash pour renommer les fichiers d'une extension spécifique à une autre. Nous utiliserons une boucle bash, trouver, renommer et la commande mv pour celle-ci.

Méthode 1: boucle de bash

La façon la plus courante de modifier les extensions de fichiers récursivement dans un répertoire est d'utiliser un bash pour la boucle. Nous pouvons inciter l'utilisateur à saisir le répertoire cible, l'ancienne extension et la nouvelle extension à renommer à l'aide d'un script bash.

Étape 1: assemblez le script
Commençons par assembler le script. La première partie dont nous avons besoin est d'obtenir le répertoire cible. Pour cela, nous pouvons nous dénoncer:

#!/ bac / bash
Echo "Entrez le répertoire cible"
Lire Target_dir
CD $ Target_dir
ECHO "Entrez l'extension de fichier pour rechercher sans point"
Lire Old_Ext
ECHO "Entrez la nouvelle extension de fichier pour renommer sans un point"
Lire New_Ext
echo "$ cible_dir, $ old_ext, $ new_ext"

Le script ci-dessus demandera à l'utilisateur que le répertoire se traite puis CD dans le répertoire set.

Ensuite, nous obtenons l'ancienne extension sans le point (.)); Enfin, nous obtenons la nouvelle extension pour renommer les fichiers.

Maintenant, passons au traitement des fichiers. Pour ça; Nous pouvons implémenter une règle simple qui recherche récursivement les fichiers comme:

pour le fichier dans *.$ old_ext
faire
mv -v "$ file" "$ fichier%.$ old_ext.$ new_ext "
fait;

La boucle ci-dessus recherchera le répertoire passé pour tous les fichiers avec l'ancienne extension et les renommera à la nouvelle extension.

Pour devenir verbeux, nous utilisons la commande mv avec -v. Vous pouvez supprimer cette sortie en remplaçant le drapeau -v par -

Étape 2: exécutez le script
Maintenant, mettons le script à l'épreuve. Le script final est ci-dessous:

#!/ bac / bash
Echo "Entrez le répertoire cible"
Lire Target_dir
CD $ Target_dir
ECHO "Entrez l'extension de fichier pour rechercher sans point"
Lire Old_Ext
ECHO "Entrez la nouvelle extension de fichier pour renommer sans un point"
Lire New_Ext
echo "$ cible_dir, $ old_ext, $ new_ext"
pour le fichier dans *.$ old_ext
faire
mv -v "$ file" "$ fichier%.$ old_ext.$ new_ext "
fait;

Dans ce test, nous utiliserons le répertoire / var / log et renommerons tous les .journaliser les fichiers à .bak. Voici le contenu du répertoire avant d'exécuter le script.

$ ls l / var / log / | grep .enregistrer

Maintenant, exécutons le script.

$ chmod + x extensions.shot
$ sudo ./ extensions

La capture d'écran ci-dessus montre le script traitant les fichiers et renommant tous les fichiers avec .se connecter à .bak.

Puisqu'il s'agit d'un script interactif, il est utile lorsque vous ne voulez pas coder dur l'extension.

Ce qui suit est le contenu du répertoire / var / journal après le script.

$ ls -l / var / log / | grep .bak

Pour retourner les modifications, passez l'ancienne extension à .bak et la nouvelle extension comme .enregistrer

Méthode 2: Renommer la commande

Si vous n'avez pas envie de travailler avec un script, vous pouvez utiliser l'outil de renom pour modifier les extensions de fichier récursivement.

Pour installer Renomme, utilisez la commande:

$ sudo apt-get install rename -y

Une fois installé, vous pouvez utiliser la commande Rename comme:

# Passez au répertoire cible
cd / var / log /
# Changement Extension
Sudo Rename's / \.enregistrer/.bak / '*.enregistrer

Pour retourner les modifications, modifiez le .faire un bak à .journal et vice versa.

$ sudo Rename's / \.bak /.enregistrer/' *.bak

Méthode 3: commande MMV

Vous pouvez également utiliser la commande MMV qui vous permet de déplacer plusieurs fichiers simultanément. Installez MMV avec la commande:

$ sudo apt-get install mmv

Pour renommer les fichiers avec la commande MMV:

$ cd / var / log /
mmv "*.CSV "" # 1.xls "

Le n ° 1 déplace les fichiers vers le répertoire actuel. Une fois que vous avez exécuté la commande, elle renommera tout .Fichiers journaliers à l'extension spécifiée.

Résumer

Cet article a discuté de diverses méthodes que vous pouvez renommer récursivement les extensions de fichiers dans un répertoire spécifique. Cependant, il est bon de noter que vous pouvez mettre en œuvre des stratégies autres que celles discutées dans ce guide.

Merci d'avoir lu et n'oubliez pas de partager!