GNU/Linux >> Tutoriels Linux >  >> Linux

Linux renommer l'extension de plusieurs fichiers

Nous pouvons utiliser mv commande pour changer le nom du fichier. Nous pouvons également l'utiliser pour modifier l'extension du fichier. Mais cela ne fonctionne qu'avec un seul fichier et ne prend pas de caractères génériques.

Nous pouvons créer un script shell pour modifier l'extension de plusieurs fichiers à la fois.

Script Shell Linux pour modifier l'extension de plusieurs fichiers

Regardons le code du script où nous utiliserons la commande mv dans une boucle for pour changer l'extension de tous les fichiers du répertoire courant.

#!/bin/sh

#Save the file as multimove.sh

IFS=$'\n'

if [ -z "$1" ] || [ -z "$2" ]
then
  echo "Usage: multimove oldExtension newExtension"
  exit -1
fi
# Loop through all the files in the current directory
# having oldExtension and change it to newExtension
for oldFile in $(ls -1 *.${1})
do
# get the filename by stripping off the oldExtension
  filename=`basename "${oldFile}" .${1}`
# determine the new filename by adding the newExtension
# to the filename
  newFile="${filename}.${2}"
# tell the user what is happening
  echo "Changing Extension \"$oldFile\" --> \"$newFile\" ."
mv "$oldFile" "$newFile"
done

Utilisation :multimove.sh doc txt (pour changer tous les .doc en .txt)

Test du script Shell de renommage

Vous trouverez ci-dessous l'exemple de sortie de l'exécution du programme ci-dessus.

$ ls
abc.txt		hi.doc		journaldev.doc	multimove.sh
$ ./multimove.sh doc txt
Changing Extension "hi.doc" --> "hi.txt" .
Changing Extension "journaldev.doc" --> "journaldev.txt" .
$ ls
abc.txt		hi.txt		journaldev.txt	multimove.sh
$ ./multimove.sh txt doc
Changing Extension "abc.txt" --> "abc.doc" .
Changing Extension "hi.txt" --> "hi.doc" .
Changing Extension "journaldev.txt" --> "journaldev.doc" .
$ ls
abc.doc		hi.doc		journaldev.doc	multimove.sh
$ 

Hypothèses et limites du script

  1. Les fichiers n'ont qu'un seul point (.)
  2. Il parcourt tous les fichiers du répertoire en cours uniquement. Cependant, vous pouvez l'étendre pour rechercher également des fichiers dans les répertoires enfants.
  3. Les espaces blancs dans le nom du fichier peuvent causer un problème avec le script. Cela a fonctionné sur mon système avec des noms de fichiers comportant des espaces, mais je ne peux pas garantir que cela fonctionnera également pour vous.

Lectures complémentaires : Commande Linux mv


Linux
  1. Comment compresser plusieurs fichiers sous Linux

  2. Comment renommer plusieurs fichiers à la fois sous Linux

  3. Linux :supprimer les extensions de fichiers pour plusieurs fichiers

  4. Trouver plusieurs fichiers et les renommer sous Linux

  5. Comment renommer plusieurs fichiers d'une extension à une autre sous Linux/Unix ?

Comment renommer des fichiers et des répertoires sous Linux

Renommer la commande sous Linux (renommer plusieurs fichiers)

Comment renommer des fichiers en utilisant la ligne de commande sous Linux

Comment renommer un ou plusieurs fichiers sous Linux

8 méthodes pour renommer plusieurs fichiers à la fois sous Linux

Comment supprimer des fichiers avec une extension spécifique sous Linux