So ändern Sie Dateierweiterungen von Dateien über die Befehlszeile in Mac OS

Benutzer der Befehlszeile finden es möglicherweise hilfreich, die Dateierweiterung einer Gruppe von Dateien in einem Verzeichnis zu ändern und umzubenennen. Angenommen, Sie haben einen Stapel von Dateien mit der Dateierweiterung ".txt", aber Sie möchten, dass alle Dateierweiterungen stattdessen ".py" lauten. Dies werden wir hier demonstrieren, indem wir auf einfache Bash-Skripte zurückgreifen, um eine Gruppe von Dateierweiterungen in der Befehlszeile von Mac OS / OS X zu ändern, aber dies funktioniert auch in Linux und anderen Unix-Varianten.


Bevor Sie beginnen, beachten Sie, dass dies keinen Dateityp ändert, sondern nur die Dateiendung. Darüber hinaus verwendet dieser Walkthrough-Ansatz absichtlich die Befehlszeile und richtet sich somit an fortgeschrittene Benutzer. Das Terminal ist jedoch nicht die einzige Möglichkeit, dies zu tun. Wenn dies für Ihre Benutzerkenntnisse zu weit fortgeschritten oder irrelevant ist, sollten Sie sich daran erinnern, dass Mac OS sowohl einfache Batch-Umbenennungsdateien in Mac OS als auch Batch-Dateierweiterungen bietet Finder auch, von denen keiner die Befehlszeile überhaupt benötigt. OK? Alles klar zum Kommandozeilenansatz mit einem einfachen Bash-Skript mit einer Zeile.

Übrigens sollten Sie immer eine Kopie und / oder ein Backup der Dateien machen, die Sie gerade ändern, besonders wenn Sie neu in der Kommandozeile sind. Andernfalls kann es zu Datenverlusten kommen, das Terminal verzeiht keine Tippfehler oder Fehler, deshalb sollten Sie Ihre Backups nicht überspringen.

So ändern Sie alle Dateierweiterungen in einem Verzeichnis über die Befehlszeile

Nehmen wir ein paar Beispiele. Im ersten Beispiel ändern wir alle Dateien im aktuellen Arbeitsverzeichnis mit der Erweiterung ".txt" und ändern sie stattdessen in ".py". Angenommen, Sie befinden sich in dem Verzeichnis, in dem Sie alle Dateien im aktuellen Verzeichnis in eine neue Dateierweiterung ändern möchten, verwenden Sie folgende Syntax:

for file in *.txt; do mv "$file" "${file%.txt}.py"; done

Beachten Sie, dass hierbei der Platzhalter * verwendet wird, dh alles und alles im aktuellen Verzeichnis, das der Dateierweiterung "* .txt" entspricht, wird geändert. Beachten Sie auch die mehreren Instanzen von "txt" und die eine Instanz von "py", die Sie beide an Ihre Anforderungen anpassen möchten.

All dies erstellt eine einfache Schleife, in der Dateien gefunden werden, die dem Platzhalter und der ursprünglichen Dateierweiterung entsprechen. Anschließend wird der Befehl "mv" ausgeführt, um diese Dateien von der ursprünglichen Dateierweiterung in die Ersetzung zu verschieben (umzubenennen). Ziemlich einfach, oder?

Lassen Sie uns ein anderes Beispiel nehmen, nehmen wir an, wir haben eine Sammlung von Bilddateien im aktuellen Verzeichnis mit Dateinamen wie "blahblah.jpg.JPEG", aber wir wollen nur, dass alle denselben Dateinamen haben, der weniger redundant und einfacher zu lesen ist "Blazblah.jpeg". In diesem Fall würde die Syntax folgendermaßen aussehen:

for file in *.jpg.JPEG; do mv "$file" "${file%.jpg.JPEG}.jpeg"; done

Die Befehlszeilenmethode zum Ändern von Dateierweiterungen ist ziemlich schnell und die Dateierweiterungen werden schnell geändert, ohne Warndialoge oder Bestätigungen.

Und um es noch einmal zu wiederholen: Es dürfen keine Dateitypen konvertiert oder etwas anderes als der Name der Dateierweiterung geändert werden.

Kennen Sie eine bessere Möglichkeit, eine Reihe von Dateierweiterungen von Dateien in einem Verzeichnis über die Befehlszeile zu ändern? Willst du einfach noch ein paar andere tolle Tipps in der Kommandozeile (gehe hier)? Lass uns deine Gedanken in den Kommentaren wissen!