GNU/Linux >> Tutoriales Linux >  >> Linux

Extensión de cambio de nombre de varios archivos de Linux

Podemos usar mv comando para cambiar el nombre del archivo. También podemos usarlo para cambiar la extensión del archivo. Pero funciona con un solo archivo y no acepta caracteres comodín.

Podemos crear un script de shell para cambiar la extensión de varios archivos a la vez.

Linux Shell Script para cambiar la extensión de varios archivos

Veamos el código del script donde usaremos el comando mv en un bucle for para cambiar la extensión de todos los archivos en el directorio actual.

#!/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

Uso :multimove.sh doc txt (para cambiar todo .doc a .txt)

Prueba de la secuencia de comandos Rename Shell

A continuación se muestra el resultado de muestra de la ejecución del programa anterior.

$ 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
$ 

Supuestos y limitaciones del script

  1. Los archivos tienen solo un punto (.)
  2. Recorre todos los archivos del directorio actual únicamente. Sin embargo, también puede ampliarlo para buscar archivos en los directorios secundarios.
  3. Los espacios en blanco en el nombre del archivo pueden causar un problema con el script. Ha funcionado en mi sistema con nombres de archivos que tienen espacios, pero no puedo garantizar que funcione para usted también.

Lecturas adicionales: Comando mv de Linux


Linux
  1. ¿Cómo cambiar la extensión de varios archivos?

  2. ¿Cómo cambiar el nombre de varios archivos usando Buscar?

  3. Linux:elimine las extensiones de archivo para varios archivos

  4. Eliminar parte de un nombre de archivo para varios archivos en Linux

  5. Encuentre múltiples archivos y cámbieles el nombre en Linux

Cómo cambiar el nombre de archivos y directorios en Linux

Comando Renombrar en Linux (Renombrar Múltiples Archivos)

Cómo cambiar el nombre de los archivos usando la línea de comandos en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

8 métodos para cambiar el nombre de varios archivos a la vez en Linux

Cómo eliminar archivos con extensión específica en Linux