mv コマンド情報まとめ
ターミナルの mv コマンドについて、オプション情報、ファイルの移動と名前変更の手順、AI エージェントが実行した場合の危険性などを紹介しています。
mvとは
mv(move)は、LinuxやmacOSなどのUnix系システムにおいて、ファイルやディレクトリを別の場所に移動したり、名前を変更(リネーム)したりするためのコマンドです。日常的なファイル操作において欠かすことのできない基本コマンドの一つです。
オプション「-i」「-f」「-n」の意味
| オプション | 意味 |
|---|---|
-i, --interactive | 移動先に同名ファイルが存在する場合、上書きするかどうかを確認するプロンプトを表示します。 |
-f, --force | 確認プロンプトを表示せず、移動先に同名ファイルがあっても強制的に上書きします(デフォルトの動作と同じですが、エイリアス設定などを上書きするために明示的に使われます)。 |
-n, --no-clobber | 移動先に同名ファイルが存在する場合、上書きをせず移動自体をスキップします。 |
重要な注意事項
mv コマンドは、デフォルトでは移動先に同名のファイルがある場合に確認なしで上書きします。これにより、既存の重要なファイルが意図せず消失する危険性があります。意図しないデータ消失を防ぐためには、-i オプションを使用して確認を挟むか、-n オプションを使用して上書きを防ぐ習慣をつけることが推奨されます。
よく使う組み合わせ
ファイルの名前を変更する
mv old_name.txt new_name.txt
同一ディレクトリ内で対象のファイルを新しいファイル名に変更します。ディレクトリ名に対しても同様に名前変更が可能です。
複数のファイルを一度に別のディレクトリへ移動する
mv file1.txt file2.txt archive/
複数のコピー対象ファイルを列挙し、最後に指定したディレクトリ(例:archive/)に一括で移動させます。
ユースケース
ダウンロードファイルの整理
一時的に特定のフォルダに溜まったファイルを、それぞれの目的別フォルダ(例:ドキュメント、ピクチャなど)へ移動して整理します。
古いログファイルのローテーション
稼働中のシステムで、現在のログファイルを日付付きの過去ログフォルダに移動してアーカイブ化します。
AIエージェントが実行しようとした場合
AIエージェントの目的
AIエージェントは主に次のような目的で mv を実行しようとすることがあります。
- 作業完了した一時出力ファイルを、指定の公開用ディレクトリや保存先に移動するため
- 作成中のコードファイルなどのファイル名を適切に変更するため
危険性
mv コマンドはコピーとは異なり、移動元のデータが元の場所から消去されるため、対象を誤るとシステムファイルが不足するなどのトラブルにつながるほか、移動先で上書きされたデータは復旧できません。そのため、AIエージェントが実行する際は、上書き先に既存のファイルがないか確認するか、-i または -n(上書き禁止)オプションを併用して安全性を確保する必要があります。