
Ich habe ein Verzeichnis voller Dateinamen, die geändert werden müssen. Ich muss nicht einfach ein Suffix oder Präfix umbenennen, sondern die Dateien komplett umbenennen.
Ich habe die neuen Dateinamen in einer Datei mit dem Namen „new_names“ fortgesetzt.
Mit welchem Befehl kann ich die in new_names enthaltenen Namen lesen und die Dateien in einem Verzeichnis umbenennen?
Antwort1
Damit können Sie eine Liste mit Befehlen generieren mv
:
paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}'
Wenn es gut aussieht, können Sie es wie folgt ausführen:
cd /path/to/files
$( paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}' )