·4分で読めます

Macでファイルの拡張子をまとめて変更する方法

間違ったファイル拡張子は、ワークフローを壊し、アプリを混乱させ、ファイルが間違ったプログラムで開かれる原因になります。1つずつ変更するのは面倒ですし、ターミナルで行うとプレビューがないためミスのリスクがあります。

開発者が200件のHTMLファイルを.txt拡張子でエクスポートしてしまった。写真家がRAWファイルを.jpgとして保存された状態で受け取った。データパイプラインが拡張子のないCSVファイルを出力した。こうした場合、中身自体は問題ないのに拡張子だけが間違っています。そして拡張子が間違っていると、ファイルが誤ったアプリで開かれたり、検索結果から除外されたり、自動化されたワークフローが壊れたりします。

そのすべての拡張子を変更する必要があります。1つずつではなく、一度にまとめて。

Finderで行う方法

Finderでも技術的には拡張子を変更できますが、1度に1件ずつしかできません。右クリックして「情報を見る」を開き、名前欄で拡張子を変更し、拡張子の変更を警告するダイアログを確認する、という手順です。200件のファイルに対してこれを行うのは、途方もない時間がかかります。

Finderの一括リネームであればテキスト置換ができるので、「.txt」を「.html」に置き換えることは可能です。しかしこれは脆弱な方法です。ファイル名の他の部分に「.txt」が含まれている場合(「notes_txt_backup.txt」など)、意図しない箇所が置換されてしまいます。Finderは「拡張子」と「たまたま一致したテキスト」を区別できません。

ターミナルで行う方法

簡単なbashコマンドでこれを処理できます。

for f in *.txt; do mv "$f" "\${f%.txt}.html"; done

素早く効果的ではありますが、プレビューも元に戻す機能もなく、コマンドに1つでもミスがあれば200件のファイル名がめちゃくちゃになってしまいます。引用符を書き忘れて、しかもファイル名にスペースが含まれていた場合、結果は予測できません。

プレビュー付きの一括拡張子変更

Renymは、拡張子の変更もリネームパイプラインの一部として処理します。ファイル名の他の部分に影響を与えることなく、拡張子だけを狙って変更できます。

Renym changing file extensions in batch on macOS

安全に拡張子を置き換える

名前の末尾に固定した正規表現を使って検索と置換を行えば、ファイル名本体のテキストにマッチさせることなく拡張子だけを変更できます。適用前に、プレビューですべてのファイルで何が変わるかを正確に確認できます。

不足している拡張子を追加する

拡張子のないファイルには、「.csv」や「.json」など正しい拡張子を末尾に追加できます。挿入アクションは、ファイル名の末尾、最後の文字のあとにテキストを追加します。

他のクリーンアップと組み合わせる

拡張子の問題は、他の命名の問題と一緒に発生することがよくあります。同じパイプラインの中で拡張子を修正しつつ、プレフィックスの削除、大文字・小文字の統一、連番の追加といったファイル名のクリーンアップも一度にまとめて行えます。

必要なら元に戻す

200件の拡張子を変更したあとで、選んだ拡張子が間違っていたと気づいても大丈夫です。バッチ全体を元に戻し、パイプラインを修正してもう一度適用すればよいのです。200件のファイルを手作業で元の拡張子に戻す必要はありません。

Mac App StoreでRenymを入手

次の記事

Renym

Rename hundreds of files with visual pipelines — regex, numbering, case changes.

Get Renym on the Mac App Store