Mam duży folder książek audio .m4b, które w obecnym formacie nie będą odtwarzane na moim telefonie z Androidem. Jednak działają one dobrze, jeśli zostaną przemianowane na .m4a
Czy istnieje szybka metoda lub polecenie terminala, które może zmienić nazwę każdego pliku .m4b w folderze na .m4a? Nie ma potrzeby jakiejkolwiek konwersji plików, po prostu zmiana nazwy rozszerzenia pliku działa idealnie.
command-line
nautilus
file-format
paznokieć
źródło
źródło
rename
jest skryptem PERL i akceptuje wyrażenia regularne. Systemy Debian mają równieżrename.ul
polecenie w ramachutil-linux-ng package
. Jeśli perl nie jest zainstalowany (ok, bardzo mało prawdopodobne;))rename
również nie jest.Odpowiedzi:
To zrobi za ciebie robotę.
rename 's/.m4b$/.m4a/' *.m4b
Do uruchomienia testowego możesz użyć tego polecenia:
rename 's/.m4b$/.m4a/' *.m4b -vn
-v
oznacza „pełny” i wyświetli nazwy plików, gdy zmieni ich nazwę.-n
wykona test, w którym nie zmieni nazwy żadnych plików, ale wyświetli listę plików, których nazwy zostaną zmienione.źródło
Bardzo szybkim sposobem na zmianę nazw plików, jeśli to wszystko, co musisz zrobić, i nie musisz konwertować ich do innego formatu, jest użycie rozszerzeń parametrów Bash, które są bardzo ładnie opisane na wiki Bash .
Istnieje kilka różnych sposobów zmiany rozszerzenia, ale używam tutaj prostego
${var/original/replacement}
paradygmatu:Jeśli chcesz zobaczyć, co zostanie zmienione przez polecenie, umieść je
echo
wcześniej,mv
a zmiany zostaną wyświetlone.Nie trzeba dodawać, że ten oneliner można zmodyfikować również dla innych plików, a także można użyć rozszerzeń parametrów, aby usunąć rozszerzenia plików.
źródło
*.m4b
. W przeciwnym razie trafisz na błądargument list too long
.for file in *.m4b; do mv -v -- "${file}" "${file/%m4b/m4a}"; done