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

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がすでに存在していれば、移動は実行されません。

関連記事:
カテゴリの一覧へ
新着記事
touch --no-createオプションの使い方を完全ガイド!初心者でもわかるファイルの新規作成防止法
basenameのSUFFIX指定で拡張子を除いてファイル名を取得する方法を解説!初心者向けLinuxコマンド講座
mv -tオプションの使い方|移動先ディレクトリを先に指定する便利な方法
lsコマンドの-rオプション|逆順(降順)でファイルを並べる方法を初心者向けに解説!
人気記事
No.1
Java&Spring記事人気No1
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.2
Java&Spring記事人気No2
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
No.3
Java&Spring記事人気No3
rm -Rオプションとは?初心者でもわかる再帰的にディレクトリを削除する方法
No.4
Java&Spring記事人気No4
Linuxコマンドpwd --help解説|オプション一覧を表示して使い方を確認する方法