mv -iオプションの使い方|上書き前に確認する安全なファイル移動方法
生徒
「Linuxのmvコマンドでファイルを移動したら、上書きされて大事なファイルが消えちゃいました…」
先生
「それは大変だったね。でも、-iオプションを使えば、上書きする前に確認できるようになるよ。」
生徒
「それなら安心ですね!具体的にどうやって使うんですか?」
先生
「それじゃあ、mv -iオプションの使い方をわかりやすく解説していこう!」
1. mvコマンドとは?
mvコマンドは、Linuxでファイルやディレクトリを移動(または名前変更)するために使う基本的なコマンドです。例えば、「Aという場所にあるファイルをBという場所に移す」といった操作ができます。また、ファイルの移動と同時に名前の変更もできるのが特徴です。
2. -iオプションとは?
-iオプションは「interactive(対話的)」の略で、上書きされるかもしれないときに、ユーザーに確認してから実行するという安全機能です。
通常、mvコマンドで同じ名前のファイルが移動先にあると、何の確認もなく上書きされてしまいます。でも-iを付けると、以下のように「上書きしてもいいですか?」と聞いてくれます。
3. mv -iの基本的な使い方
例えば、同じディレクトリに同名ファイルがある場合に使ってみましょう。
mv -i sample.txt backup/sample.txt
mv: overwrite 'backup/sample.txt'?
このとき「y」を押せば上書きされ、「n」を押せば中止されます。うっかり消してしまう事故を防げる便利なオプションですね。
4. 実際に試してみよう:ファイルがある場合とない場合の違い
まず、同じ名前のファイルがない場合は、確認なくそのまま移動されます。
mv -i report.txt documents/report.txt
移動先にreport.txtが存在しなければ、確認は出ずに普通に移動されます。
一方で、ファイルが既に存在する場合は以下のようになります。
mv -i report.txt documents/report.txt
mv: overwrite 'documents/report.txt'?
このように、上書き前に確認があるため、ミスを防ぐことができます。
5. rmコマンドとの違いに注意!
mvは「移動」や「名前変更」のコマンドですが、rmは「削除」です。間違えてrmを使ってしまうとファイルは完全に削除され、戻せません。
mvコマンドなら間違えてもまだファイルは残っており、しかも-iを使えば上書きの確認もできます。
6. -iオプションを常に有効にする方法(エイリアスの活用)
毎回mv -iと打つのが面倒な場合、エイリアスという設定を使うことで、mvと打っただけでmv -iが自動で実行されるようにできます。
alias mv='mv -i'
この設定を~/.bashrcや~/.bash_profileに書いておけば、ログイン時に自動で反映されるようになります。
7. 他のオプションとの組み合わせ例
mvには他にも便利なオプションがあります。以下は代表的な組み合わせ例です。
-v(verbose):どのファイルが移動されたかを表示-n(no-clobber):既存ファイルがある場合は上書きしない
例:-iと-vを一緒に使って、確認しながら処理の内容も表示する
mv -iv report.txt backup/
mv: overwrite 'backup/report.txt'? y
'report.txt' -> 'backup/report.txt'
8. mv -iとmv -nの違い
-iと似た機能に-nがあります。-nは確認もせずに上書きしない、つまり「何もしない」という動きになります。
mv -n report.txt backup/report.txt
この場合、移動先に同じ名前のファイルがあれば、mvはそのまま無視して何も実行しません。自動スクリプトなどで誤って上書きしたくないときに便利です。