So verwenden Sie Bash, um die Dateierweiterung mehrerer Dateien in einem Ordner zu ändern

So verwenden Sie Bash, um die Dateierweiterung mehrerer Dateien in einem Ordner zu ändern
In diesem Tutorial wird eine schnelle Möglichkeit besprochen, Bash zu verwenden, um Dateien von einer bestimmten Erweiterung in eine andere zu umbenennen. Wir werden eine Bash -Schleife verwenden, finden, umbenennen, umbenennen und den MV -Befehl für diesen Fall.

Methode 1: Schleife verkleinern

Die häufigste Methode, um die Dateierweiterungen in einem Verzeichnis rekursiv zu ändern, besteht darin, eine Bash für die Schleife zu verwenden. Wir können den Benutzer auffordern, das Zielverzeichnis, die alte Erweiterung und die neue Erweiterung mithilfe eines Bash -Skripts umzubenennen.

Schritt 1: Montieren Sie das Skript
Lassen Sie uns beginnen, das Skript zusammenzustellen. Der erste Teil, den wir brauchen, ist, das Zielverzeichnis zu erhalten. Dafür können wir lesen als:

#!/Bin/Bash
Echo "Geben Sie das Zielverzeichnis ein"
Lesen Sie target_dir
CD $ target_dir
Echo "Geben Sie die Dateierweiterung ein, um ohne Punkt zu suchen"
Lesen Sie Old_ext
Echo "Geben Sie die neue Dateierweiterung ein, um ohne Punkt umbenannt zu werden"
Lesen Sie new_ext
echo "$ target_dir, $ old_ext, $ new_ext"

Das obige Skript wird den Benutzer auffordert, das Verzeichnis zu verarbeiten und dann CD in das Set -Verzeichnis zu verarbeiten.

Als nächstes bekommen wir die alte Erweiterung ohne den Punkt (.); Schließlich erhalten wir die neue Erweiterung, um die Dateien umzubenennen.

Lassen Sie uns nun die Dateien verarbeiten. Dafür; Wir können eine einfache Regel implementieren, die die Dateien rekursiv durchsucht wie:

für Datei in *.$ old_ext
Tun
mv -v "$ file" "$ file%.$ old_ext.$ new_ext "
Erledigt;

Die für die Schleife oben sucht das übergebene Verzeichnis für alle Dateien mit der alten Erweiterung und benennen sie sie in die neue Erweiterung um.

Um ausführlich zu bekommen, verwenden wir den MV -Befehl mit -v. Sie können diese Ausgabe unterdrücken, indem Sie das -V -Flag durch durch Austausch durchsetzen -

Schritt 2: Führen Sie das Skript aus
Lassen Sie uns das Skript nun auf den Test setzen. Das letzte Skript ist unten:

#!/Bin/Bash
Echo "Geben Sie das Zielverzeichnis ein"
Lesen Sie target_dir
CD $ target_dir
Echo "Geben Sie die Dateierweiterung ein, um ohne Punkt zu suchen"
Lesen Sie Old_ext
Echo "Geben Sie die neue Dateierweiterung ein, um ohne Punkt umbenannt zu werden"
Lesen Sie new_ext
echo "$ target_dir, $ old_ext, $ new_ext"
für Datei in *.$ old_ext
Tun
mv -v "$ file" "$ file%.$ old_ext.$ new_ext "
Erledigt;

In diesem Test verwenden wir das Verzeichnis /var /log .Protokolldateien auf .Bak. Hier sind der Inhalt des Verzeichnisses, bevor das Skript ausgeführt wird.

$ ls l/var/log/| Grep .Protokoll

Lassen Sie uns nun das Skript ausführen.

$ chmod +x Erweiterungen.Sch
$ sudo ./Erweiterungen

Der obige Screenshot zeigt das Skript, das die Dateien verarbeitet und alle Dateien umbenannt wird .log an .Bak.

Da dies ein interaktives Skript ist, ist es nützlich, wenn Sie die Erweiterung nicht harte Codierung haben möchten.

Im Folgenden finden Sie den Inhalt des Verzeichnisses /var /log nach dem Skript.

$ ls -l/var/log/| Grep .Bak

Um die Änderungen zurückzuverwenden, wechseln Sie die alte Erweiterung auf .Bak und die neue Erweiterung als .Protokoll

Methode 2: Befehl umbenennen

Wenn Sie keine Lust haben, mit einem Skript zu arbeiten.

Verwenden Sie den Befehl zum Umbenennen, um den Befehl zu installieren:

$ sudo apt -Get Installieren Sie den Umbenennen -y

Nach der Installation können Sie den Befehl umbenennen wie:

# Wechseln Sie in das Zielverzeichnis
CD/var/log/
# Erweiterung ändern
sudo namens/\ umbenannt.Protokoll/.Bak/' *.Protokoll

Ändern Sie die Änderungen, um die Änderungen zurückzuverwenden, die .Bak zu .Protokoll und umgekehrt.

$ sudo umbenennen 's/\.bak/.Protokoll/' *.Bak

Methode 3: MMV -Befehl

Sie können auch den Befehl MMV verwenden, mit dem Sie mehrere Dateien gleichzeitig verschieben können. Installieren Sie MMV mit dem Befehl:

$ sudo apt-Get Installieren Sie MMV

Um Dateien mit MMV -Befehl umzubenennen:

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

Die Nr. 1 verschiebt die Dateien in das aktuelle Verzeichnis. Sobald Sie den Befehl ausgeführt haben, wird er alle umbenannt .Protokollieren Sie Dateien in der angegebenen Erweiterung.

Zusammenfassen

In diesem Artikel wurden verschiedene Methoden erörtert. Sie können Dateierweiterungen in einem bestimmten Verzeichnis rekursiv umbenennen können. Es ist jedoch gut zu beachten, dass Sie andere Strategien implementieren können als die in diesem Leitfaden besprochenen.

Vielen Dank fürs Lesen und denken Sie daran, zu teilen!