Ich habe einen großen Ordner mit .m4b-Hörbüchern, die in ihrem aktuellen Format auf meinem Android-Handy nicht wiedergegeben werden können. Sie funktionieren jedoch einwandfrei, wenn sie in .m4a umbenannt werden
Gibt es eine schnelle Methode oder einen Terminalbefehl, mit dem jede .m4b-Datei in einem Ordner in .m4a umbenannt werden kann? Es ist keine Konvertierung der Dateien erforderlich. Das Umbenennen der Dateierweiterung funktioniert einwandfrei.
command-line
nautilus
file-format
Titelbild
quelle
quelle
rename
ist ein PERL-Skript und akzeptiert reguläre Ausdrücke. Debian-Systeme haben auch einenrename.ul
Befehl als Teil derutil-linux-ng package
. Wenn Perl nicht installiert ist (ok, sehr unwahrscheinlich;))rename
ist auch nicht.Antworten:
Dies erledigt die Arbeit für Sie.
rename 's/.m4b$/.m4a/' *.m4b
Für einen Testlauf können Sie diesen Befehl verwenden:
rename 's/.m4b$/.m4a/' *.m4b -vn
-v
bedeutet "ausführlich" und gibt die Namen der Dateien aus, wenn sie umbenannt werden.-n
führt einen Testlauf durch, bei dem keine Dateien umbenannt werden. Es wird jedoch eine Liste der Dateien angezeigt, die umbenannt werden würden.quelle
Eine sehr schnelle Möglichkeit, Dateien umzubenennen, wenn dies alles ist, was Sie tun müssen und nicht in ein anderes Format konvertieren müssen, ist die Verwendung der Bash-Parametererweiterungen, die im Bash-Wiki sehr ausführlich beschrieben werden .
Es gibt verschiedene Möglichkeiten, die Erweiterung zu ändern, aber ich verwende hier das einfache
${var/original/replacement}
Paradigma:Wenn Sie sehen möchten, was durch den Befehl geändert wird, platzieren Sie
echo
vormv
und die Änderungen werden aufgelistet.Selbstverständlich kann dieser Oneliner auch für andere Dateien geändert werden, und Sie können auch Parametererweiterungen verwenden, um Dateierweiterungen zu entfernen.
quelle
*.m4b
. Andernfalls werden Sie den Fehler treffenargument list too long
.for file in *.m4b; do mv -v -- "${file}" "${file/%m4b/m4a}"; done