概要
mmvは「mass move」の略で、複数のファイルを一度に処理することに特化したユーティリティです。`mv`が個々のファイルの移動/名前変更に主に使用されるのに対し、mmvは`*.jpeg`のようなワイルドカードパターンを使用して元のファイルの集合を定義し、それを新しいパターンに変換して対象ファイルの集合を生成します。特に、`rename`が名前変更機能に集中するのに対し、`mmv`はコピー(`cp`)、リンク(`ln`)、移動(`mv`)の機能すべてを統合して提供するという利点があります。
主な特徴
mmvコマンドの主な特徴は以下の通りです。
- ワイルドカードパターンを使用して複数のファイルを一括処理します。
- ファイルの移動(`mv`)、コピー(`cp`)、リンク(`ln`)、名前変更の機能を統合して提供します。
- `rename`と似ていますが、機能がより多様で使い方が直感的です。
- 競合が発生した場合、警告メッセージを出力してミスを防止します。
mmvとrenameの違い
mmvとrenameはどちらもファイル名の一括変更に使用されますが、動作方法に違いがあります。
- mmv: ワイルドカード(`*`, `?`, `[ ]`)を使用してパターンを定義し、数字(#1, #2)でキャプチャされた部分を再構成します。コピー/移動/リンク機能も提供します。
- rename: Perl正規表現(`s/pattern/replacement/`)を使用して名前を変更することに特化しています。
主要オプション
mmvコマンドは、ファイル処理方法とオプションを通じて詳細な動作を制御できます。
1) ファイル処理オプション
2) パターンマッチング
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`mmv` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
mmvコマンドの様々な使用例を通じて機能を習得してください。
ファイル拡張子の変更
mmv '*.jpeg' '#1.jpg'
現在のディレクトリ内のすべての`.jpeg`拡張子を`.jpg`に変更します。
ファイル名にプレフィックスを追加
mmv '*.txt' 'doc_#1.txt'
すべての`.txt`ファイルに`doc_`プレフィックスを追加します。
ディレクトリの移動
mmv '*.log' '/var/log/#1.log'
現在のディレクトリ内のすべての`.log`ファイルを`/var/log`ディレクトリに移動します。
大文字小文字の変更
mmv '*.*' '#l1.#l2'
ファイル名の大文字を小文字に変更します。
変更結果のプレビュー
mmv -n '*.bak' '#1.old'
実際にファイルを変更せず、`.bak`拡張子を`.old`に変更した場合の結果を事前に確認します。
インストール
mmvはほとんどのLinuxディストリビューションにデフォルトで含まれていないため、以下のコマンドを使用してインストールする必要があります。
Debian/Ubuntu
sudo apt update
sudo apt install -y mmv
RHEL/CentOS/Fedora
sudo dnf install -y mmv
Arch Linux
sudo pacman -S mmv
ヒント&注意事項
mmvコマンド使用時の注意点をまとめました。
ヒント
- mmvのパターン構文はシェルのワイルドカードに似ています。`*`は任意の文字列、`?`は1文字を意味します。`from_pattern`の`*`は`to_pattern`で`#1`、`#2`のように数字で参照できます。
- ファイル名が競合する場合、`mmv`はデフォルトでは操作を実行せず、警告を出力します。`-f`オプションで競合を無視して強制的に上書きできますが、データ損失に注意が必要です。
- 正規表現とワイルドカードパターンがシェルによって展開されないように、パターン文字列は必ずシングルクォーテーション(`'`)で囲む必要があります。