Ich habe ein Verzeichnis mit MP3-Dateien, in denen ich die Erweiterungen in MP3 ändern möchte. Was ist der einfachste Weg, dies zu tun? Ich denke etwas in der Art von:
find /RootPath -type f -iname "*.mp3" -exec mv {} sed s/.*MP3/\1.mp3/ \;
... obwohl ich weiß, dass das nicht ganz richtig ist. :) Die Ersetzung ist nicht korrekt und ich bin mir nicht sicher, wie ich einen mv
und einen sed
Befehl mit -exec
in verwenden soll find
.
Würde ich dafür ein Bash-Skript benötigen?
In zsh:
So kümmern Sie sich auch um
.Mp3
oder.mP3
Dateien:quelle
Sie können für diese den Befehl zum Umbenennen verwenden (beachten Sie, dass es zwei Hauptimplementierungen mit unterschiedlichen APIs gibt). Versuchen Sie beispielsweise Folgendes, um den Fall von Dateinamenerweiterungen von oben nach unten zu ändern:
mit
rename
fromutil-linux
(manchmal aufgerufenrename.ul
) wird angenommen, dass.JPG
die Dateinamen nur einmal vorkommenmit dem
rename
vonperl
(manchmal genanntprename
; mehrere Varianten wurden veröffentlicht):Hier ist ein Tutorial, wie er von einem chaotischen Bash-Skript zu diesem einfachen Befehl für genau Ihren Anwendungsfall übergegangen ist.
Ein weiterer ausgefallener Befehl dazu ist
pax
. Wenn Sie ZSH für Ihre Shell verwenden, können Sie auch verwendenzmv
.quelle
syntax error at (user-supplied code), near "."
, wenn ich diesen Befehl ausführe.Verwenden Sie Perl-Rename , ein Schweizer Taschenmesser zum Umbenennen von Dateien mit regulären Ausdrücken (auf Ubuntu wird dies mit dem Perl-Paket als Vorname gebündelt):
Wenn Sie vorsichtig sind, verwenden Sie die Optionen -n und -v, um Perl umzubenennen und zu sehen, was es tatsächlich tun wird.
quelle
Sie benötigen ein Skript, da "Erweiterungen" unter Linux eigentlich nur Teile der Dateinamenzeichenfolge sind. Sie müssen einige Zeichenfolgen im Skript bearbeiten, um den neuen Namen zu erhalten.
Das doppelte Anführungszeichen ist wichtig, wenn Sie Dateinamen mit Leerzeichen enthalten. Ich fand einige der doppelten Zitate etwas unauffällig.
quelle
In Bash:
quelle
Sichern Sie zuerst Ihre Dateien! Sie können einen Python-Einzeiler verwenden:
BEARBEITEN:
Hier finden Sie eine detaillierte Erklärung, wie der Einzeiler tatsächlich funktioniert. Mit übergeben
python -c
wir einen Befehl an den Python-Interpreter. Nach dem Importieren der Bibliothekenos
für dierename
Funktion undglob
für die Dateiliste müssen wir die Dateiliste in dem angegebenen Verzeichnis durchlaufen, das ich aufgerufen habePATH_TO_YOUR_DIRECTORY
, zum Beispiel./*
für alles im aktuellen Verzeichnis.In der
for
Einzeilensyntax funktionieren Schleifen nach derimport
Notation leider nicht , daher müssen wir die Klammernotation verwenden. Dh für jeden Datei- oder Verzeichnisnamen,glob
der uns aus dem angegebenen Pfad in Form einer Zeichenfolge gibt, ersetzen wir * .MP3 durch * .mp3.Da OP die rekursive Suche nicht erwähnte, habe ich sie überhaupt nicht aufgenommen.
quelle