2016-09-13 6 views
1

Wenn ich Latexdokumente mache, werden mehrere Dateien mit demselben Basisnamen aber einer anderen Erweiterung erstellt. Wenn ich die ursprüngliche Datei umbenennen möchte, muss ich auch jede andere Datei im Ordner umbenennen.Benennen Sie alle Dateien mit dem gleichen Basisnamen um

Gibt es eine Möglichkeit, das Folgende zu tun?

mv file_basename.* file_newname.[whatever was globbed] 

Antwort

1

Lassen Sie uns ein Verzeichnis mit diesen Dateien betrachten:

$ ls 
file_basename.a file_basename.b file_basename.c 

Jetzt wollen wir das Perl rename Dienstprogramm ausführen, um die Dateien umbenennen:

$ prename 's/file_basename/file_newname/' * 
$ ls 
file_newname.a file_newname.b file_newname.c 

Wie Sie alle Dateien sehen können, haben der neue Name.

prename, manchmal rename genannt, ist Teil des Perl-Pakets.

Beachten Sie, dass einige Linux-Distributionen standardmäßig eine andere und inkompatible Version installieren. Wenn Sie einen solchen haben, funktioniert der obige Befehl nicht. Weitere Informationen zu den Distributionen mit prename oder zur Installation in Ihrer Distribution finden Sie unter here.

0

Hier ist ein einfaches Bash-Skript, das (nennen wir es rename-prefix):

#!/bin/bash 

basename="$1" 
newname="$2" 
for file in "$basename"*; do 
    mv -iv -- "$file" "$newname${file#$basename}" 
done 

Es hat aus dem Verzeichnis ausgeführt werden, wo sich die Dateien befinden. Sie führen es wie folgt aus:

rename-prefix file_basename. file_newname. 
Verwandte Themen