Gerne, hier ist eine übersichtliche und gut strukturierte README.md für deine Skripte:
Dateinamen-Korrektur-Skripte
Dieses Skript-Set hilft dir dabei, zwei häufige Probleme mit Dateinamen zu beheben:
- Falsch kodierte Zeichen, die nach einer Konvertierung unlesbar sind (z. B.
Cabr'$'\351''stattCabré). - Unerwünschte Zusätze wie
(ungültige Kodierung)in Dateinamen.
1. Korrektur der Zeichenkodierung mit convmv
Dieses Skript korrigiert falsch dargestellte Sonderzeichen, indem es die Dateinamen von einem älteren Zeichensatz (iso-8859-1) in den modernen Standard (utf-8) konvertiert.
Voraussetzung:
Du musst das Tool convmv installiert haben.
- Debian/Ubuntu:
sudo apt-get install convmv - Arch:
sudo pacman -S convmv
Anwendung: Führe den Befehl im Verzeichnis aus, in dem die fehlerhaften Dateien liegen.
# Zuerst einen Testlauf durchführen, um die Änderungen zu prüfen
convmv -f iso-8859-1 -t utf-8 -r .
# Wenn die Ausgabe korrekt ist, den Befehl mit --notest ausführen
# Dieser Schritt führt die tatsächliche Umbenennung durch
convmv -f iso-8859-1 -t utf-8 --notest -r .
--notest: Führt die Änderung wirklich durch (ohne diesen Parameter ist es nur ein Testlauf).-r: Wendet den Befehl rekursiv auf alle Unterverzeichnisse an.
2. Entfernen von unerwünschten Zusätzen mit find und rename
Nach der Kodierungskorrektur können Dateinamen den Zusatz (ungültige Kodierung) enthalten. Dieses Skript entfernt diesen Zusatz aus allen Dateien und Verzeichnissen.
Voraussetzung:
Du benötigst das rename-Tool, das oft als perl-rename bekannt ist.
- Debian/Ubuntu:
sudo apt-get install rename - Arch:
sudo pacman -S perl-rename
Anwendung: Führe den folgenden Befehl in dem entsprechenden Verzeichnis aus.
# Sucht rekursiv nach Dateien mit "(ungültige Kodierung)" und entfernt den Text
find . -depth -name "* (ungültige Kodierung)*" -exec rename 's/ \(ungültige Kodierung\)//' {} \;
find . -depth: Findet alle Dateien und Verzeichnisse, beginnend im aktuellen Ordner.-depthsorgt dafür, dass zuerst die Dateien und dann die Ordner selbst umbenannt werden, um Fehler zu vermeiden.-name "* (ungültige Kodierung)*": Sucht nach Dateinamen, die den Zusatz enthalten.rename 's/ ... //: Ersetzt den Suchbegriff (in den Klammern) durch einen leeren String und entfernt ihn so aus dem Dateinamen.