Erstellen Sie das folgende Skript mit einem Namen wie 'rename.sh':
#!/bin/bash
TARGET_DIR=$1
TARGET_FILES="$TARGET_DIR/*.temp"
for fileName in $TARGET_FILES
do
newFileName=${fileName::-5}
mv -v "${fileName}" "${newFileName}"
done
note Die ${var:offset:length}
Expansion bash Version 4 oder höher benötigt.
Geben Sie ihm die Ausführungsrechte:
chmod a+x rename.sh
Sie müssen es nennen und den Namen des Verzeichnisses der .temp Dateien als Parameter übergeben. Nennen Sie es wie folgt aus:
./rename.sh /path/to/the/temp-files
Das Skript-Schleifen über alle * .temp Dateien im Zielordner, extrahiert die letzten 5 Zeichen aus dem Dateipfad (‚.temp‘ ist 5 Zeichen) und verschiebt die Originaldatei zu der neuen Datei, die .temp nicht als Erweiterung enthält.
EDIT: auf einem CentOS getestet 7
Show 'die prename' Ausgabe – RomanPerekhrest
Sie könnten das' mmv' Werkzeug verwenden möchten: 'mmv "* .txt.temp" "# 1.txt"' –
Mögliche doppelte von [Shell/Bash-Verknüpfung zum Massenumbenennen von Dateien in einem Ordner] (https://stackoverflow.com/questions/8416990/shell-bash-shortcut-for-bulk-renaming-of-files-in-a-folder) – Fabien