GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Erweiterung zum Umbenennen mehrerer Dateien

Wir können mv verwenden Befehl zum Ändern des Dateinamens. Wir können damit auch die Dateierweiterung ändern. Aber es funktioniert nur mit einer einzigen Datei und akzeptiert keine Wildzeichen.

Wir können ein Shell-Skript erstellen, um die Erweiterung mehrerer Dateien gleichzeitig zu ändern.

Linux-Shell-Skript zum Ändern der Erweiterung mehrerer Dateien

Schauen wir uns den Skriptcode an, in dem wir den mv-Befehl in einer for-Schleife verwenden, um die Erweiterung aller Dateien im aktuellen Verzeichnis zu ändern.

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

Verwendung :multimove.sh doc txt (um alle .doc in .txt zu ändern)

Testen des Umbenennungs-Shell-Skripts

Unten ist die Beispielausgabe der obigen Programmausführung.

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

Skriptannahmen und -beschränkungen

  1. Die Dateien haben nur einen Punkt (.)
  2. Es durchläuft nur alle Dateien im aktuellen Verzeichnis. Sie können es jedoch erweitern, um auch in den untergeordneten Verzeichnissen nach Dateien zu suchen.
  3. Leerzeichen im Dateinamen können ein Problem mit dem Skript verursachen. Es hat auf meinem System mit Dateinamen mit Leerzeichen funktioniert, aber ich kann nicht garantieren, dass es auch bei Ihnen funktioniert.

Weiterführende Literatur: Linux-mv-Befehl


Linux
  1. So komprimieren Sie mehrere Dateien unter Linux

  2. So benennen Sie mehrere Dateien gleichzeitig in Linux um

  3. Linux:Dateierweiterungen für mehrere Dateien entfernen

  4. Entfernen eines Teils eines Dateinamens für mehrere Dateien unter Linux

  5. Dateien rekursiv umbenennen (Erweiterung ändern) in Linux

So benennen Sie Dateien und Verzeichnisse in Linux um

Umbenennungsbefehl in Linux (Mehrere Dateien umbenennen)

So benennen Sie Dateien über die Befehlszeile in Linux um

So benennen Sie eine Datei (en) in Linux um

8 Methoden zum gleichzeitigen Umbenennen mehrerer Dateien in Linux

So entfernen Sie Dateien mit einer bestimmten Erweiterung in Linux