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