Angesichts der folgenden Dateien:
english_api
english_overview
style.css
Ich möchte bekommen:
english_api.html
english_overview.html
style.css
Mit anderen Worten, wie Sie einen Text an alle Dateien anhängen, die keinen Punkt ( .
) in einem Verzeichnis enthalten, indem Sie das Terminal verwenden.
Offensichtlich befinden sich viele Dateien in diesem Ordner. Ich habe gerade 3 als Beispiel geschrieben.
Wenn ich zu, sagen wir, ersetzen Sie .css
mit .html
in diesem Ordner, würde ich verwenden:
rename .css .html *.css
Aber ich kann mir nicht wirklich vorstellen, wie ich Dateien abgleichen kann, die nichts enthalten. Auch wie man mit rename
Befehl anhängt (vs ersetzt) ?
quelle
for file in path/to/files/!(*.*); do echo mv "$file" "$file.html"; done
Befehl benennt auch die Verzeichnisse um.Ich bevorzuge in solchen Fällen
mmv
. Es ist nicht standardmäßig in Ubuntu installiert, aber Sie können es mit demsudo apt-get install mmv
Befehl installieren .In Ihrem Fall müssen Sie es zweimal verwenden:
Benennen Sie alle Dateien aus dem aktuellen Verzeichnis um, indem Sie
.html
am Ende jedes Dateinamens Folgendes hinzufügen :Benennen Sie alle Dateien, deren Namen zuvor einen oder mehrere
.
(Punkte) enthielten, erneut um (zurück ):Oder in einer Zeile:
-v
Option ist nicht obligatorisch. Ich benutze es nur für eine ausführliche Ausgabe, weil es ohne esmmv
Aktionen still ausführt.Siehe
man mmv
für weitere Informationen.quelle
Mit dem Perl-Umbenennungsbefehl (
prename
) können Sie eine Bedingung hinzufügen, dass der Dateiname einen Punkt enthalten muss. Wenn das Perl-Snippet den Namen einer Datei nicht ändert, bleibt diese Datei unberührt. Hier sind einige Möglichkeiten, dies zu schreiben:quelle
Die Antworten sind perfekt, ich gebe Ihnen auch einen anderen Befehl, der diesen Job macht:
Einige Erklärungen:
HINWEIS :
Ich probiere dein Szenario aus und der Befehl macht den Job.
quelle
ls
.awk
und tun möchtensh
, versuchen Sie etwas wieprintf "'%s'\n" -- !(*.*) | awk '{print "mv -- "$0" "$0".html"}' | sh
. Das wird bei Dateinamen mit Zeilenumbrüchen immer noch kaputt gehen, aber es kann zumindest mit Leerzeichen umgehen. Das--
ist für den Fall erforderlich , in denen Sie die Dateinamen beginnend mit haben-
.