Linux, コマンド · 1 min read · Sep 13, 2025

初心者のためのLinux mvコマンドの説明(8つの例)

cp(コピー)やrm(削除)と同様に、Linuxにはファイルを移動および名前変更するための組み込みコマンドがあります。それはmvと呼ばれています。この記事では、このコマンドラインツールの基本をわかりやすい例を使って説明します。このチュートリアルで使用されるすべての例は、Ubuntu 22.04 LTSでテストされています。

Linux mvコマンド

前述のように、Linuxのmvコマンドはファイルを移動または名前変更するために使用されます。以下はコマンドの構文です:

mv [OPTION]... [-T] SOURCE DEST  
mv [OPTION]... SOURCE... DIRECTORY  
mv [OPTION]... -t DIRECTORY SOURCE...

そして、manページには次のように記載されています:

SOURCEをDESTに名前変更するか、SOURCEをDIRECTORYに移動します。

以下のQ&A形式の例は、このツールがどのように機能するかをよりよく理解するのに役立ちます。

Q1. Linuxでmvコマンドを使用するには?

ファイルの名前を変更するだけの場合、次のようにmvコマンドを使用できます:

mv [filename] [new_filename]

例えば:

mv names.txt fullnames.txt

同様に、ファイルを新しい場所に移動する必要がある場合は、次のようにmvコマンドを使用します:

mv [filename] [dest-dir]

例えば:

mv fullnames.txt /home/himanshu/Downloads

Q2. mvが上書きする前にプロンプトを表示するようにするには?

デフォルトでは、mvコマンドは既存のファイルを上書きする操作を行うときにプロンプトを表示しません。例えば、以下のスクリーンショットは、既存のfull_names.txtが警告や通知なしにmvによって上書きされたことを示しています。

ただし、mvにプロンプトを表示させたい場合は、-iコマンドラインオプションを使用できます。

mv -i [file_name] [new_file_name]

したがって、上記のスクリーンショットは、-iがmvに既存のファイルを上書きする前にユーザーの許可を求めることを示しています。上書きする前にmvにプロンプトを表示させたくない場合は、-fコマンドラインオプションを使用してください。

Q3. mvが既存のファイルを上書きしないようにするには?

これには、-nコマンドラインオプションを使用する必要があります。

mv -n [filename] [new_filename]

以下のスクリーンショットは、’full_names.txt’という名前のファイルが既に存在し、コマンドに-nオプションが含まれていたため、mv操作が成功しなかったことを示しています。

注意:

-i、-f、-nのいずれかを複数指定した場合、最終的なもののみが有効になります。

Q4. mvがソース引数から末尾のスラッシュを削除するようにするには?

ソース引数から末尾のスラッシュを削除するには、以下のように–strip-trailing-slashesコマンドラインオプションを使用します。

mv --strip-trailing-slashes [source] [dest]

公式ドキュメントでは、このオプションの有用性について次のように説明しています:

これは、ソース引数に末尾のスラッシュがあり、ディレクトリへのシンボリックリンクを指定する場合に便利です。このシナリオは、いくつかのシェルがそのようなシンボリックリンクのファイル名補完を行う際に自動的に末尾のスラッシュを追加することができるため、実際にはかなり一般的です。このオプションがない場合、例えば`mv`は(システムのrename関数を介して)末尾のスラッシュをシンボリックリンクを解決するリクエストとして解釈し、間接的に参照された*ディレクトリ*を名前変更しなければなりません。このような動作がデフォルトであることは驚くべきことかもしれませんが、POSIXによって要求されており、その標準の他の部分と一貫しています。

Q5. mvが宛先を通常のファイルとして扱うようにするには?

宛先エンティティがディレクトリではなく通常のファイルとして扱われることを確認するには、-Tコマンドラインオプションを使用します。

mv -T [source] [dest]

このコマンドラインオプションが存在する理由は次の通りです:

これは、共有エリアで動作するプログラムにおけるレースコンディションを回避するのに役立ちます。例えば、コマンド‘mv /tmp/source /tmp/dest’が成功した場合、/tmp/sourceが/tmp/destに名前変更されたことは保証されません:他のプロセスが/tmp/destをディレクトリとして作成した場合、/tmp/dest/sourceに名前変更された可能性があります。しかし、mv -T /tmp/source /tmp/destが成功した場合、/tmp/sourceが/tmp/destに名前変更されたことは疑いの余地がありません。
逆の状況では、最後のオペランドをディレクトリとして扱い、そうでない場合に診断を希望する場合は、--target-directory (-t)オプションを使用できます。

Q6. mvがファイルを宛先ファイルより新しい場合のみ移動するようにするには?

システムのDownloadsディレクトリにfullnames.txtという名前のファイルが存在し、ホームディレクトリにも同じ名前のファイルがあるとします。今、~/fullnames.txtで~/Downloads/fullnames.txtを更新したいが、後者が新しい場合のみ更新したいとします。この場合、-uコマンドラインオプションを使用する必要があります。

mv -u ~/fullnames.txt ~/Downloads/fullnames.txt

このオプションは、シェルスクリプト内でそのような決定を下す必要がある場合に特に便利です。

Q7. mvが実行していることの詳細を出力するようにするには?

mvに何をしているのかを説明する情報を出力させたい場合は、-vコマンドラインオプションを使用します。

mv -v [filename] [new_filename]

例えば、以下のスクリーンショットは、mvが実行したことの詳細を出力していることを示しています。

Q8. mvが既存の宛先ファイルのバックアップを作成するように強制するには?

これを行うには、-bコマンドラインオプションを使用します。この方法で作成されたバックアップファイルは、宛先ファイルと同じ名前になりますが、チルダ(~)が付加されます。以下はその例です:

結論

ご想像の通り、mvはcpやrmと同様に重要であり、ファイルの名前変更や移動は基本的な操作の一つです。このツールが提供するコマンドラインオプションの大部分について説明しました。これらを練習し、コマンドを使用し始めることができます。mvについてもっと知りたい場合は、そのmanページを参照してください。また、HowtoForgeにはteeコマンドなど、他のLinuxコマンドのチュートリアルもあります。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。