Eine der Möglichkeiten, wie ich Dateien in Windows schnell umbenenne, ist
F2 > Rename > Tab (to next file) > Rename ...
Aber in Ubuntu / Nautilus kann ich nicht zur nächsten Datei wechseln. Unter Linux muss es jedoch eine Befehlszeilenalternative geben.
Manchmal möchte ich jedoch mehr Kontrolle darüber, wie bestimmte Dateien umbenannt werden sollen. In diesem Fall ist es vielleicht besser, mit der nächsten Datei fortzufahren
command-line
rename
Jiew Meng
quelle
quelle
Antworten:
Ich benutze die
rename
ganze Zeit. Es ist ziemlich einfach, aber Sie kennen hoffentlich den regulären Ausdruck:Dadurch wird die Zeichenfolge ersetzen
SEARCH
mitREPLACE
in jeder Datei (das heißt,*
). Das/g
bedeutet global, wenn Sie also ein hättenSEARCH_SEARCH.jpg
, würde es umbenanntREPLACE_REPLACE.jpg
. Wenn Sie es nicht/g
getan hätten , wäre es nur einmal ausgetauscht worden und wurde daher jetzt benanntREPLACE_SEARCH.jpg
. Wenn Sie die Groß- und Kleinschreibung nicht berücksichtigen möchten, fügen Sie hinzu/i
(das wäre/gi
oder/ig
am Ende).Mit regulären Ausdrücken können Sie viel mehr tun.
Beachten Sie, dass dies
rename
derprename
(auch als Perl bezeichneterename
) Befehl ist, der vollständige reguläre Perl-Ausdrücke unterstützt. Es gibt einen anderen,rename
der Muster verwendet und nicht so mächtig ist.prename
Früher wurde es standardmäßig unter Ubuntu (zusammen mit Perl) installiert, aber jetzt müssen Sie möglicherweise Folgendes tun:Hier einige Beispiele:
Präfix
Hinzufügen :
document.pdf
umbenannt inMyPrefix_document.pdf
Entfernen :
Sie können auch unerwünschte Zeichenfolgen entfernen. Angenommen, Sie hatten 20 MP3-Dateien mit dem Namen like
CD RIP 01 Song.mp3
und wollten den Teil "CD RIP" entfernen, und Sie wollten diesen mit einem Befehl von allen entfernen.CD RIP 01 Song.mp3
zu01 Song.mp3
Beachten Sie den zusätzlichen Speicherplatz in
'^CD RIP '
. Ohne den Speicherplatz hätten alle Dateien ein Leerzeichen als erstes Zeichen der Datei. Beachten Sie auch, dass dies ohne das^
Zeichen funktioniert , aberCD RIP
in jedem Teil des Dateinamens übereinstimmt . Das^
garantiert, dass es die Zeichen nur entfernt, wenn sie der Anfang der Datei sind.Suffix
Hinzufügen :
document.pdf
umbenannt indocument.pdf_MySuffix
Änderung :
wird sich ändern
Something.pdf
inSomething.doc
. (Der Grund für die Backslash ist,.
ist ein Platzhalter in regexp so.pdf
Streichhölzer ,qPDF
während\.pdf
nur die exakte Zeichenfolge entspricht.pdf
. Ebenfalls sehr wichtig zu beachten, wenn Sie mit BASH nicht vertraut sind, müssen Sie Schrägstriche in einfache Anführungszeichen setzen! Sie können keine Anführungszeichen weglassen oder verwenden Sie doppelte Anführungszeichen, oder bash versucht, sie zu übersetzen. to bash\.
and"\."
equals.
. (Es werden jedoch doppelte Anführungszeichen und Backslashes verwendet, z. B. "\ n" für eine neue Zeile, da dies"\."
jedoch keine gültige Back-Escape-Sequenz ist.) übersetzt in.
)Tatsächlich können Sie die Teile des Strings sogar in Anführungszeichen anstatt in das Ganze setzen:
's/Search/Replace/g'
ist dasselbe wies/'Search'/'Replace'/g
unds/Search/Replace/g
für BASH. Sie müssen nur auf Sonderzeichen (und Leerzeichen) achten.Ich schlage vor, die
-n
Option zu verwenden, wenn Sie nicht sicher sind, dass Sie die richtigen regulären Ausdrücke haben. Es zeigt, was umbenannt werden würde, und wird dann beendet, ohne es zu tun. Zum Beispiel:Dies listet alle Änderungen auf, die vorgenommen worden wären, wenn Sie die
-n
Flagge nicht dort platziert hätten. Wenn es gut aussieht, drücken Sie Up, um zurückzukehren, und löschen Sie dann-n
und drücken Sie Enter(oder ersetzen Sie es durch,-v
um alle vorgenommenen Änderungen auszugeben).Hinweis : Ubuntu-Versionen über 17.04
rename
werden standardmäßig nicht mitgeliefert, sind jedoch weiterhin in den Repositorys verfügbar. Verwenden Siesudo apt install rename
es zu installierenquelle
rename
Befehl Bescheid wusste, dass ich Folgendes getan habe, um Folgendes anzufügen:for f in *; do mv -v "$f" "prependThis$f"; done
(?:\.[0-9]{3})$
in Ihrem Muster alle 3-stelligen Dateierweiterungen in einer passiven Gruppe. Beispiel:rename s/^my_favorite_movie.avi(?:\.[0-9]{3})$/random_movie.avi/ *
. Schauen Sie sich diesen Regex-Spickzettel an .Versuchen Sie Pyrenamer .
Es ist nicht in Nautilus integriert, erledigt aber die Arbeit. Hier ist eine Bewertung.
Thunar (Teil von XFCE) hat auch einen Renamer, den Sie separat ausführen können.
quelle
Auf dem Launchpad scheint sich ein Projekt namens Nautilus-Renamer zu befinden . Sie können es installieren, indem
make install
Sie es ausführen , sobald Sie das Skript heruntergeladen und entpackt haben. Es scheint einige Funktionen zu haben, oder wenn Sie wissen, dass es sich um eine Programmierung handelt, können Sie es einfach an Ihre Bedürfnisse anpassen, da es sich nur um ein Python-Skript handelt.quelle
In der Befehlszeile lautet der Befehl zum Umbenennen einer einzelnen Datei einfach
Wenn Sie es im Batch tun möchten, möchten Sie es wahrscheinlich über ein Skript tun. Wenn Sie weitere Details angeben, kann ich oder jemand anderes wahrscheinlich eine für Sie zusammenstellen. Das heißt, ein Skript zum Anhängen von Inhalten an eine Datei könnte folgendermaßen aussehen:
Abhängig davon, wie Sie die Dinge umbenennen möchten, wird dies wahrscheinlich optimiert, zum Beispiel, wenn Sie bestimmte Umbenennungsregeln befolgen müssen. (Persönlich würde ich das über ein Perl-Skript machen, da mein Bash-Foo nicht so toll ist, aber das bin nur ich.)
Beachten Sie, dass ich die Trennung von Dateiname und Erweiterung von einer zuvor gestellten Frage erhalten habe .
quelle
Falls Sie dies ohne Befehlszeile tun möchten, verwenden Sie ähnlich wie in Windows die rechte Pfeiltaste anstelle der Tabulatortaste . Dadurch wird die nächste Datei ausgewählt, wie dies auch in Windows der Fall ist.
quelle
Nicht wirklich die gleiche Frage wie Wie können viele Dateien gleichzeitig umbenannt werden? Aber ich werde das gleiche Programm vorschlagen, das ich in dieser Antwort vorgeschlagen habe: qmv .
qmv ist ein praktisches Tool aus dem Renameutils-Paket. Sie können Ihren bevorzugten Texteditor verwenden, um Dateien umzubenennen. In Kombination mit der Leistungsfähigkeit von vim verfügen Sie über ein hervorragendes Dienstprogramm zum Umbenennen.
Normalerweise rufe ich es wie
qmv -f do
in dem Verzeichnis auf, in dem ich eine Reihe von Dateien umbenennen möchte. Oder wenn ich rekursiv umbenennen möchteqmv -R -f do
.Immer wenn ich mehrere Dateien umbenennen muss, greife ich auf qmv (und vim) zurück.
http://www.nongnu.org/renameutils/
quelle
Wenn die einzige geeignete Option darin besteht, die Dateien manuell umzubenennen, können Sie dazu
vidir
(immoreutils
Paket) Folgendes verwenden:Beispiele
Dateien selektiv umbenennen
Aktueller Inhalt des Arbeitsverzeichnisses:
Führen Sie aus
vidir
, und benennen Sie die Dateinamen in den Zeilen um, die die Dateinamen enthalten, die Sie umbenennen möchten. drücke CTRL+ Ound CTRL+ X:Dateinamen selektiv wechseln
Aktueller Inhalt des Arbeitsverzeichnisses:
Aktueller Inhalt der Arbeitsverzeichnisdateien:
Führen Sie aus
vidir
, wechseln Sie die Nummern in den Zeilen, die die Dateinamen enthalten, die Sie wechseln möchten. drücke CTRL+ Ound CTRL+ X:Dateien selektiv entfernen
Aktueller Inhalt des Arbeitsverzeichnisses:
Führen Sie
vidir
, entfernen Sie die Linien , die die Dateien enthält , die Sie löschen möchten; drücke CTRL+ Ound CTRL+ X:quelle
Ich benutze Krename. Es ist eine GUI-App. Es könnte MP3-Tags und so weiter lesen.
Es gibt es als separate App sowie als Teil von Krusader.
Es gibt auch ein
rename
Skript, das Teil der Standard-Perl-Installation ist (wahrscheinlich haben Sie es installiert). Probieren Sie es aus mitman rename
.quelle