カテゴリ: Linuxコマンド集 更新日: 2025/12/19

mv -nオプションの使い方|既存ファイルを上書きしない安全なファイル移動

mv -nオプション|既存ファイルを上書きしない移動方法
mv -nオプション|既存ファイルを上書きしない移動方法

先生と生徒の会話形式で理解しよう

生徒

「Linuxのmvコマンドを使ってファイルを移動したら、元からあったファイルが消えちゃったんですけど…」

先生

「それはmvコマンドで上書きされちゃったんだね。でも-nオプションを使えば、上書きを防ぐことができるよ。」

生徒

「そんな便利な機能があるんですね!詳しく教えてください!」

先生

「じゃあ、今回はmv -nの使い方を分かりやすく解説していこう!」

1. mvコマンドとは?

1. mvコマンドとは?
1. mvコマンドとは?

mvコマンドは、Linuxでファイルやディレクトリを移動したり、名前を変更したりするために使われます。たとえば、ファイルを他のフォルダに移したり、別の名前に変更したりする時に使います。

ただし、移動先に同じ名前のファイルがあった場合、何の確認もなく上書きされてしまうのが基本の動作です。これが原因で大事なファイルが消えてしまうこともあります。

2. -nオプションとは?

2. -nオプションとは?
2. -nオプションとは?

-nオプションは「no-clobber(ノー・クロバー)」の略で、「上書きしない」という意味になります。

つまり、mvコマンドで移動先に同じ名前のファイルが存在していたら、そのファイルを上書きせずに何もしないという安全な動作をしてくれるのです。

3. mv -nの基本的な使い方

3. mv -nの基本的な使い方
3. mv -nの基本的な使い方

以下はmv -nを使って、ファイルを安全に移動する例です。


mv -n photo.jpg backup/photo.jpg

この場合、もしbackup/photo.jpgがすでに存在していたら、photo.jpgは移動されずにそのままになります。つまり、上書きの危険がないということです。

4. 上書きされる場合とされない場合の違い

4. 上書きされる場合とされない場合の違い
4. 上書きされる場合とされない場合の違い

具体的に比較してみましょう。

【上書きされる場合(-nなし)】


mv photo.jpg backup/photo.jpg

この場合は、backup/photo.jpgが存在していれば、そのまま上書きされてしまいます

【上書きされない場合(-nあり)】


mv -n photo.jpg backup/photo.jpg

backup/photo.jpgが存在していると、photo.jpgの移動はスキップされます。

5. mv -nは何も表示しない?

5. mv -nは何も表示しない?
5. mv -nは何も表示しない?

mv -nは、移動が成功しても失敗しても、特に何もメッセージを表示しません。そのため、実際に処理されたかどうか確認するには、-v(verbose)オプションと組み合わせるのがおすすめです。

たとえば、以下のように使います。


mv -nv photo.jpg backup/photo.jpg

このようにすると、移動が実行された場合のみファイル名が表示され、移動されなかったときは何も出ません

6. -nと-iの違いに注意しよう

6. -nと-iの違いに注意しよう
6. -nと-iの違いに注意しよう

-nと似たオプションに-iがありますが、それぞれの違いは次の通りです。

  • -n:上書きをしない。確認もしないでスキップする。
  • -i:上書きする前に確認を求める。ユーザーが「y」と答えると上書き。

スクリプトやバッチ処理など、自動で動かす場面では-nを、手動で慎重に操作したいときは-iを使うと便利です。

7. -nを常に有効にしたい場合は?

7. -nを常に有効にしたい場合は?
7. -nを常に有効にしたい場合は?

毎回-nと入力するのが面倒なときは、エイリアスを設定してmvを自動的にmv -nとして使うことができます。

以下のように設定します。


alias mv='mv -n'

これを~/.bashrc~/.bash_profileに記述しておけば、毎回自動で-nが適用されるようになります。

8. mv -nはファイルだけでなくディレクトリにも使える

8. mv -nはファイルだけでなくディレクトリにも使える
8. mv -nはファイルだけでなくディレクトリにも使える

mv -nはファイルだけでなく、ディレクトリの移動にも使えます。ただし、移動先に同じ名前のディレクトリがある場合には、やはり上書きせずにスキップされます。


mv -n my_folder backup/my_folder

このようにすると、backupディレクトリに同じ名前のmy_folderがすでに存在していれば、移動は実行されません。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Linuxのmvコマンドとは何ですか?どんな場面で使いますか?

mvコマンドは、Linuxでファイルやディレクトリを移動したり、名前を変更したりするための基本的なコマンドです。例えば、ファイルを別のフォルダへ移すときやファイル名を変更したいときに使います。
関連記事:
カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
grep -hオプションの使い方|ファイル名を表示せずに一致行だけを出力する方法
New2
ファイル・ディレクトリ操作
find -mindepthオプションの使い方を完全ガイド!検索の最小深さを指定して効率よくファイル検索
New3
ファイル・ディレクトリ操作
Linuxのlsコマンド-iオプション完全ガイド!初心者でもわかるi-node番号の表示方法
New4
ファイル・ディレクトリ操作
stat --dereferenceオプションの使い方を解説|-Lと同じようにシンボリックリンク先の情報を表示しよう
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本