Linuxのmvコマンドでファイルやディレクトリを移動する方法!名前の変更方法も解説!

Linuxの基本コマンドの「mv」は、ファイルやディレクトリを移動させるためのコマンドです。単に移動するだけではなく、ファイルの名前を変更したり、オプションを使うことで上書きを回避したりできます。本記事では、そんなLinuxのmvコマンドについて説明します。

Linuxのmvコマンドでファイルやディレクトリを移動する方法!名前の変更方法も解説!のイメージ

目次

  1. 1Linuxのmvコマンドについて
  2. mvコマンドって何?
  3. mvコマンドの書き方解説
  4. 2Linuxのmvコマンドの基本の使い方
  5. 移動方法
  6. 複数ファイルをまとめて移動する
  7. 特定の名前が含まれるファイルをまとめて移動する
  8. 名前を変更(リネーム)する方法
  9. 3Linux mvのオプションを解説
  10. 主なオプションの一覧
  11. オプションの使い方
  12. 4Linuxのmvコマンドとcpコマンドについて
  13. mvとcpの違いとは?
  14. ファイル入れ替えにおいてmvは使用してはいけない
  15. 5Linuxでmvコマンドを使ってファイルの移動をしてみよう

Linuxのmvコマンドについて

荷物を移動させる人

Linuxの「mv」コマンドの名前は「move」から採られており、その名前の通りファイルやディレクトリ(フォルダ)を移動させるコマンドです。なお、mvとよく似た機能を持つLinuxのコマンドに「cp」がありますが、こちらは「copy」から名前が採られていることからわかる通り、移動ではなくコピーするコマンドです。

mvとcpの違いについてはのちほど「Linuxのmvコマンドとcpコマンドについて」の章で詳しく説明します。

mvコマンドって何?

Linuxのmvは、基本的にはファイルやディレクトリ(フォルダ)を移動させるコマンドですが、ファイルの移動先にファイル名を指定することでファイル名の変更にも利用できます。

mvコマンドの書き方解説

PCを扱う女性

Linuxのmvコマンドは、以下のように使用します。

mv [オプション] 移動させたいファイル・ディレクトリ 移動先のファイル・ディレクトリ

このとき、mvはデフォルトでは上書きモードで動作します。そのため、移動後のリネームしたファイル名と同じファイルがあった場合は、元のファイルは消されてしまうので注意が必要です。のちほど「Linux mvのオプションを解説」でお伝えする、上書き確認用オプションを常用することをおすすめします。

また、mvでは移動させたいファイルを複数指定することも可能です。この場合は最後に移動先のディレクトリを指定し、以下のように記します。

mv [オプション] 移動させたいファイル1 ファイル2…… 移動先のディレクトリ

ThumbLinuxMint19のインストール手順やダウンロード方法!日本語入力の設定方法も解説!
LinuxMint19の概要や、LinuxMint19のインストール方法などについて解説して...

Linuxのmvコマンドの基本の使い方

教師と生徒

ここからは、前章の最後の節でお伝えしたLinuxのmvコマンドの使い方を具体例とともに説明します。

移動方法

稲穂を運ぶ人

まずはmvコマンドの基本中の基本である、単純にファイルやディレクトリ(フォルダ)を移動させる方法です。

ファイルを移動する場合

最初に紹介するのは、単純にファイルを移動させる場合のmvの使用例です。「今いるディレクトリ(フォルダ)のtest.txtを、"/home/applica/"ディレクトリへ移動させる」という場合は、以下のように記します。

mv test.txt /home/applica/

mvを使って複数のファイルを移動させる場合は、次の「複数ファイルをまとめて移動する」の節で説明します。

ディレクトリ(フォルダ)を移動する場合

PCを扱う女性

先ほどはmvを使ってファイルを移動させる場合について説明しましたが、mvを使ってディレクトリ(フォルダ)を移動させる場合もまったく変わりはありません。mvを使って「今いるディレクトリにある"test"ディレクトリを"/home/applica/"ディレクトリへ移動させる」という場合は、以下のように記します。

mv test /home/applica/

移動時の注意点について

注意看板

mvコマンドを使ったファイルの移動時に注意しなければならないのが、移動先に指定したディレクトリ(フォルダ)がちゃんと存在しているかということです。もし存在しない場合には、ファイル名がそのディレクトリ名に変更されて移動されます

つまり、「/home/」ディレクトリに「applica」ディレクトリがなかった場合、前々節の「mv test.txt /home/applica/」を実行すると、「/home/」ディレクトリに「test.txt」が「applica」という名前にリネームされて移動してしまうのです。

あらかじめディレクトリの有無を確認してmvコマンドを使ったとしても、タイプミスによってリネームされて移動する可能性もあるので気をつけてください。

注意喚起テープ

mvコマンドを使ったファイルの移動と同様、ディレクトリを移動する場合も、移動先に指定したディレクトリがすでに存在していると問題が起きます

mvで指定した移動先のディレクトリが空のディレクトリならばいいのですが、そのディレクトリ内にすでにファイルやサブディレクトリが存在していると、エラーが表示されてディレクトリの移動ができませんので、注意してください。

複数ファイルをまとめて移動する

多くの荷物を運ぶ人

Linuxのmvを使うと、複数のファイルをまとめて移動させることもできます。この場合は、以下のようにmvのあとに複数のファイル名を連続して入力し、最後に移動先のディレクトリを示します。

mv test1.txt test2.txt test3.txt /home/applica/

特定の名前が含まれるファイルをまとめて移動する

コンテナトラッカー

Linuxのmvコマンドでは、0文字以上の任意の文字を表す「*」や、任意の1文字を表す「?」といったワイルドカードも使えます。そのため、今いるディレクトリにある「test1.txt」から「test9.txt」までをまとめて移動させる場合は、以下のように簡単な記述が使えます。

mv test?.txt /home/applica/

ただし、この場合「testx.txt」などがあっても移動させられてしまいますし、「test10.txt」は一緒に移動できません。「testx.txt」などの「text」で始まる移動させたくないファイルがなく、「test10.txt」もまとめて移動させたい場合は、「*」を使って以下のように記述してください。

mv test*.txt /home/applica/

名前を変更(リネーム)する方法

PCを扱う女性

つづいては、Linuxのmvコマンドを使ってファイル名やディレクトリ名(フォルダ名)を変更する方法です。

ファイル名を変更する場合

PCを扱う女性

Linuxのmvコマンドでファイル名を変更させる場合は、移動先を変更するファイル名に変えるだけです。

mv test.txt applica.txt

とすれば、「test.txt」が「applica.txt」にリネームされます。また、移動とファイル名の変更を同時に行うことも可能です。「test.txt」を「applica.txt」にリネームして「/home/applica/」ディレクトリに移動するには以下のように記します。

mv test.txt /home/applica/applica.txt

なお、先にも記しましたが、すでにapplica.txtが存在していても、オプションなしのmvコマンドは警告なしで上書きしてしまいますので、注意が必要です。

ディレクトリ名(フォルダ名)を変更する場合

HTMLの編集

mvコマンドでディレクトリ名(フォルダ名)を変更する場合も、ファイル名を変更する時と同じです。

mv test applica

とすれば、「test」ディレクトリが「applica」ディレクトリにリネームされます。

ThumbLinuxのlessコマンドの使い方!ファイルの閲覧やテキストファイルを画面で表示する方法を解説!
Linuxのlessコマンドの使い方!ファイルの閲覧やテキストファイルを画面で表示する方法を...

Linux mvのオプションを解説

ここからはLinuxのmvコマンドのオプションを説明します。最初に主なオプションを挙げたのち、そのうちのいくつかのオプションの使い方を説明します。

主なオプションの一覧

プログラミングのイメージ

Linuxのmvの主なオプションを以下に示します。
 

短い 長い表記 意味
-f --force 移動先の同名ファイルを確認せずに上書きする(デフォルト)
-i --interactive 移動先に同名ファイルがある場合は確認する。詳細後述
-n --no-clobber 移動先に同名ファイルがある場合は上書きしない
-u --update 移動先の同名ファイルのタイムスタンプが古い場合のみ上書き移動する
-t ディレクトリ名 --target-directory=ディレクトリ名 指定したディレクトリ(フォルダ)に移動する
-T --no-target-directory 移動先がディレクトリ名であっても、そのディレクトリ下に移動するのではなく、その名前にリネームして移動する
なし –strip-trailing-slashes 移動前のファイル・ディレクトリ名の末尾の「/」を削除する
-b --backup=方法 上書きされるファイルのバックアップを作成。詳細後述
-S --suffix=接尾辞 バックアップ作成時にファイル名の末尾に付ける文字を指定
-v --verbose ファイルの移動の経過を表示

オプションの使い方

プログラミングのイメージ

オプションは、Linuxのほかのコマンド同様、mvコマンドの直後に記述します。

-b(--backup)オプションとは?

バックアップのイメージ

Linuxのmvにおいて、-bオプションは非常によく使われるオプションです。

mv -b test.txt applica/

たとえば上のように指定した場合、すでに「applica」ディレクトリ(フォルダ)内に「test.txt」が存在していると、そのファイルは「test.txt~」と末尾に「~」がついた形でバックアップされ、新たに「test.txt」が移動されます。このとき、「--backup」も同様に利用でき、こちらを使うとバックアップファイルの接尾語を指定できます。
 

  • --backup=t(or numbered)……「~」の代わりに番号を振った拡張子を追加する
  • --backup=nil(or existing)……すでに同名のバックアップファイルがある場合、それに倣って処理する

-i(--interactive)オプションとは?

イエスかノーかの問い合わせのイメージ

-i オプションも、Linuxのmvにおいて非常によく使われるオプションです。

mv -i test.txt applica/

たとえば上のように指定した場合、すでに「applica」ディレクトリ(フォルダ)内に「test.txt」が存在していると上書きすべきかを以下のように尋ねてきます。

mv: overwrite 'test.txt' ?

これに対し、「yes」や「y」と応えると上書きされ、「no」や「n」、あるいはなにも入力せずにEnterキーを押すとファイルは上書きされずにmvが中止されます

ThumbLinuxのrenameコマンドで複数のファイル名を一括変換する方法!使い方やオプションを解説!
「Linux」で利用できる便利な「rename」コマンドを使った、複数のファイル名を一括変換...

Linuxのmvコマンドとcpコマンドについて

コピー機のイメージ

mvとよく似た使い方をされるLinuxコマンドにcpがあります。mv同様、コピー先でファイルの名前を変えることもディレクトリのコピーも可能ですし、複数のファイルをまとめてコピーできる上に、いくつか同じ働きをするオプションもあります。

mvとcpの違いとは?

mvが「move」の略であるように、cpは「copy」の略です。一番の違いは元のファイルがcpはコピーなので残るのに対し、mvでは移動なので元のファイルが残らないということです。しかし、それ以外にも似て非なる点があります。

権限を保つ場合はcpコマンドがオススメ

プログラミングのイメージ

mvとcpの違いを、今いるディレクトリ(フォルダ)から「/home/applica」ディレクトリに「text.txt」を移動、もしくはコピーして確かめます。

mv test.txt /home/applica/
cp test.txt /home/applica/


このとき、新たに「/home/applica/」に作成されるファイルは、
 

  • mv……元のファイルと同じ権限、タイムスタンプ
  • cp……新たな権限、cpを行ったときのタイムスタンプ

となります。そのため、mvを使うと「/home/applica/」の権限が及ばないファイルが作成されてしまい、ほかの「/home/applica/」のファイルとの整合性がとれなくなる場合があります。

ファイル入れ替えにおいてmvは使用してはいけない

サーバーのイメージ

前項で触れたように、mvを-fオプションをつけて同じ名前で上書きすると、内容のみならずそこにあったファイルとタイムスタンプや権限が変更されてしまいます。

ファイル入れ替えで権限が上書きされる可能性がある

特に致命的なのが、ローカル端末で更新した設定ファイルなどをサーバーにアップロードし、所定のディレクトリに移動させる場合です。このときにmvコマンドを使用すると、ここまででお伝えしたように権限や所有者が変更されてしまい、正常に動作しなくなる可能性があります。

こういう場合はcpを使うことで、権限や所有者が変わらないようにすることが必要です。

ThumbLinuxのgrapコマンドで特定の文字列を抽出する方法!使い方やオプション一覧を紹介!
「grep」はLinuxのコマンドで、使い方は特定の文字を入力して、ファイルを特定したり、存...

Linuxでmvコマンドを使ってファイルの移動をしてみよう

PCを扱う男性

以上お伝えしたように、Linuxのmvコマンドはファイルやディレクトリ(フォルダ)の移動や名前の変更に使える便利な基本コマンドです。シンプルで便利な反面、デフォルトでは問答無用で同名ファイルを上書きしてしまいますので、「-i」オプションや「-b」オプションをうまく使って、安全にmvを利用してください。

ThumbLinuxのawkコマンドでテキストの加工とパターン処理を行う方法!基本的な使い方とオプションを解説!
数あるLinuxのコマンドの中でも、テキストファイルを自在に加工できる使い勝手のいいコマンド...

関連するまとめ

Original
この記事のライター
julyten
PDAの頃から携帯機器やPC関係を扱ってきた旧きプロレス愛好家。