回答:
これはあなたのために仕事をします。
rename 's/.m4b$/.m4a/' *.m4b
テスト実行では、次のコマンドを使用できます。
rename 's/.m4b$/.m4a/' *.m4b -vn
-v
は「冗長」を意味し、ファイル名を変更するとファイルの名前を出力します。
-n
ファイルの名前を変更しないテスト実行を行いますが、名前が変更されるファイルのリストを表示します。
ファイルの名前を変更する非常に簡単な方法は、必要なだけで別の形式に変換する必要がない場合、Bashのパラメーター展開を使用することです。Bashwikiで詳しく説明されています。
拡張機能を変更する方法はいくつかありますが、ここでは単純な${var/original/replacement}
パラダイムを使用します。
for file in *.m4b; do mv -- "${file}" "${file/%m4b/m4a}"; done
コマンドによって何が変更されるかを確認する場合は、echo
前に配置するmv
と変更がリストされます。
言うまでもなく、このonelinerは他のファイルでも変更できます。また、パラメーター拡張を使用してファイル拡張子も削除できます。
*.m4b
。そうしないと、エラーが発生しますargument list too long
。
for file in *.m4b; do mv -v -- "${file}" "${file/%m4b/m4a}"; done
rename
PERLスクリプトであり、正規表現を受け入れます。Debianシステムには、のrename.ul
一部としてコマンドもありutil-linux-ng package
ます。perlがインストールされていない場合(OK、非常に低い;))rename
もインストールされていません。