Linuxでファイルの拡張子を一括で変更する方法

この記事では、Linuxにおいてファイルの拡張子を一括で変更する方法について詳しく解説します。Linuxのコマンドラインツールを用いた実用的な手法、具体的なコード例、その詳細な解説、そして応用例を4つ以上含めています。

目次

はじめに

Linux環境で作業をしていると、複数のファイルの拡張子を一括で変更する必要が出てくる場合があります。例えば、`.txt` ファイルを `.md` に一括で変更したい、といったケースです。手動で一つずつ変更するのは非効率なので、このような作業はスクリプトやコマンドラインツールで自動化するのが一般的です。

基本的な方法

基本的な一括拡張子変更は、`rename` コマンドを使います。

rename コマンドの基本形

rename 's/\.txt$/.md/' *.txt  # .txt拡張子のファイルを.mdに変更

このコマンドは、現在のディレクトリ内の `.txt` ファイル全てを `.md` ファイルに変更します。

rename コマンドのオプション

`rename` コマンドはオプションを追加することで、動作をカスタマイズできます。

rename -n 's/\.txt$/.md/' *.txt  # 実行前にどのファイルがどう変更されるか確認

この `-n` オプションは「実行前に何が変わるか」を表示してくれるもので、実際のファイル変更は行われません。

応用例

複数のディレクトリにまたがるファイルの拡張子を一括で変更

find /path/to/dir -type f -name "*.txt" -exec rename 's/\.txt$/.md/' {} \;  # 複数のディレクトリにある.txtファイルを.mdに変更

特定の文字列を含むファイルだけ拡張子を変更

rename 's/\.txt$/.md/' *keyword*.txt  # "keyword" を含む.txtファイルだけを.mdに変更

大文字の拡張子を小文字に変更

rename 'y/A-Z/a-z/' *.TXT  # .TXTを.txtに変更

日付をファイル名に追加しつつ拡張子を変更

rename "s/\.txt$/_$(date +%Y%m%d).md/" *.txt  # .txtファイルを日付付き.mdに変更

まとめ

Linuxの`rename` コマンドを用いれば、複数のファイルの拡張子を一括で簡単に変更することができます。応用例を通して、更に高度な拡張子の変更方法も学びました。これらのテクニックを使って、日々の作業をより効率的にしていきましょう。

created by Rinker
オライリージャパン
¥3,080 (2024/07/16 02:56:35時点 Amazon調べ-詳細)

コメント

コメントする

目次