Vinzenz Mai: Dateien automatisch umbennen

Beitrag lesen

Hallo Biesterfeld,

  • alle Dateien liegen im gleichen Verzeichnis (eventuell mit Unterverzeichnissen).
  • die Dateien haben "handelsübliche" Endungen, d.h. es ist eine bekannte Menge.

dann könnte es ein kleiner Einzeiler tun.

Ansätze:

for i in /path/to/dir/*.txt /path/to/dir/*.mp3 ; do mv $i ${i%.*} ; done

beseitigt bei allen Dateien im Verzeichnis /path/to/dir, die die Endung .txt oder .mp3 tragen diese Endung. Mit Dateien wie

beispiel.txt
    beispiel.mp3

im gleichen Verzeichnis bekommst Du natürlich ein Problem.

Für Dateien in einer Verzeichnishierarchie könntest Du folgendes (mit dem gleichen Problem bei gleichen resultierenden Dateinamen) anwenden:

for i in $(find /path/to/dir -regex ".*(txt|mp3)$") ; do mv $i {i%.*} ; done

benennt alle Dateien im Verzeichnis /path/to/dir und den darin enthaltenen Unterverzeichnissen um, die die Endungen .txt oder .mp3 tragen.

Wenn Dir die x Minuten Nichtverfügbarkeit akzeptabel erscheinen (x Element der Natürlichen Zahlen), dann wäre ein Cronjob die einfachste Lösung. Die Erweiterung der akzeptablen Dateiendungen sollte leicht fallen, Du könntest gegebenenfalls das Kommando auch dynamisch mittels einer Datei erstellen, die eine Liste der Dateiendungen enthält.

Alternativ könntest Du $programmiersprache nutzen, was ich hier nicht für notwendig erachte :-)

Freundliche Grüße

Vinzenz