2025-08-03 12:45:29 +00:00
2025-08-03 12:45:29 +00:00
2025-08-03 12:43:54 +00:00

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:

  1. Falsch kodierte Zeichen, die nach einer Konvertierung unlesbar sind (z. B. Cabr'$'\351'' statt Cabré).
  2. 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. -depth sorgt 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.
Description
Fehlerhaft kodierte Dateinamen in utf-8 zurückverwandeln und ggf. "fehlerhafte Kodierung" von den Datei- und Verzeichnisnamen entfernen
Readme 25 KiB
Languages
Shell 100%