web-dev-qa-db-ja.com

フォルダー内のすべてのファイルのすべてのファイル拡張子をすばやく変更する方法はありますか?

現在の形式ではAndroid電話で再生できない.m4bオーディオブックの大きなフォルダーがあります。ただし、.m4aに名前を変更した場合は正常に機能します

フォルダー内のすべての.m4bファイルの名前を.m4aに変更できる簡単な方法またはターミナルコマンドはありますか?ファイルを変換する必要はありません。ファイル拡張子の名前を変更するだけで問題なく動作します。

13
coversnail

これはあなたのために仕事をします。

rename 's/.m4b$/.m4a/' *.m4b

テスト実行では、次のコマンドを使用できます。

rename 's/.m4b$/.m4a/' *.m4b -vn

-vは「冗長」を意味し、ファイル名を変更するとファイルの名前を出力します。

-nは、ファイルの名前を変更しないテスト実行を行いますが、名前が変更されるファイルのリストを表示します。

15
Basharat Sialvi

ファイルの名前を変更する非常に迅速な方法は、必要なだけで別の形式に変換する必要がない場合、Bashのパラメーター展開を使用することです。詳細については the Bash wiki =。

拡張機能を変更する方法はいくつかありますが、ここでは単純な${var/original/replacement}パラダイムを使用します。

for file in *.m4b; do mv -- "${file}" "${file/%m4b/m4a}"; done

コマンドによって何が変更されるかを確認する場合は、echomvの前に配置すると、変更がリストされます。

言うまでもなく、このonelinerは他のファイル用にも変更でき、パラメーター拡張を使用してファイル拡張子も削除できます。

10
user76204