Linuxコマンド「mv」とオプションの使い方(ファイルやディレクトリを移動する、ファイル名を変更する)

「mv」コマンドを使うと、ファイルやディレクトリ(フォルダ)を移動したり、ファイル名を変更(リネーム)することができます。

以下から Linuxコマンド「mv」の具体的な使い方とオプションを解説していきます。

 

「mv」コマンドの基本

「mv」は以下のように移動元と移動先のファイル名やディレクトリ名(フォルダ名)を指定して使います。

mv 移動元 移動先

 

ファイルを移動する

ファイルを別のディレクトリに移動してみましょう。

 

まずは以下のコマンドで移動元になるファイル「file1.txt」を作成してみます。

touch file1.txt
メモ

touch コマンドの詳しい使い方はこちら

 

次に以下のコマンドで、移動先として「directory1」というディレクトリを用意します。

mkdir directory1
メモ

mkdir コマンドの詳しい使い方はこちら

 

それではこの「file1.txt」を「directory1」に移動してみましょう。コマンドは以下。

mv file1.txt directory1

 

ls コマンドで確認してみると、「directory1」の中に「file1.txt」が移動できています。

ls directory1

メモ

ls コマンドの詳しい使い方はこちら

 

このようにパスを指定することで、他のディレクトリの中にファイルを移動することができました。

メモ

パスの詳しい解説はこちら

 

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

今度はディレクトリ(フォルダ)を移動してみましょう。

 

以下のコマンドで、移動元になるディレクトリ「directory2」を作成します。

mkdir directory2
メモ

mkdir コマンドの詳しい使い方はこちら

 

それではこの「directory2」を「directory1」に移動してみましょう。コマンドは以下。

mv directory2 directory1

 

このように、ディレクトリの場合もファイルと同じように移動することができます。

 

ファイル名を変更(リネーム)する

移動先にファイル名を指定すると、その名前に変更(リネーム)することができます。

 

実際に名前変更を試してみましょう。

まずは以下のコマンドでファイル「file2.txt」を作成してみます。

touch file2.txt
メモ

touch コマンドの詳しい使い方はこちら

 

それではこの「file2.txt」を「file3.txt」という名前に変更します。コマンドは以下。

mv file2.txt file3.txt

 

これで名前が変更できました。

 

ディレクトリ名(フォルダ名)を変更(リネーム)する

ディレクトリ名(フォルダ名)もファイルと同じように変更(リネーム)できます。

 

前の手順で作成した「directory1」を「directory3」という名前に変更します。コマンドは以下。

mv directory1 directory3

 

名前を変更しても、ディレクトリの中身にはちゃんと もともとあったファイルが残っています。

 

ファイルを移動し、名前も変更(リネーム)する

今までの合わせ技で、ファイルの移動と名前の変更(リネーム)を同時に行うこともできます。

 

前の手順で作成した「file3.txt」を「directory3」のディレクトリへ移動し、ファイル名は「file4.txt」という名前に変更してみます。コマンドは以下。

mv file3.txt directory3/file4.txt

 

ちなみに、ディレクトリも同じようにして移動と名称変更を同時に行うことができます。

 

ここまでが「mv」コマンドの基本!

 

「mv」コマンドの応用

「mv」コマンドの理解をさらに深めたい方は以下もご覧ください。

 

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

半角スペースで区切って複数のファイルを指定することで、それらのファイルをまとめて移動することができます。

 

例えば以下のコマンドで、「file1.txt」と「file2.txt」をまとめて「directory1」の中に移動することができます。

mv file1.txt file2.txt directory1

 

特定の名前が含まれるファイルをまとめてコピーする

*(ワイルドカード)を使うことで、特定の名前が含まれているファイルをまとめて移動することができます。

 

例えば以下のようにすると、末尾に「.txt」がついているファイルだけをまとめて「directory1」に移動することができます。

mv *.txt ./directory1

 

-b(–backup)オプション

-b--backup)オプションをつけると、移動先に同じ名前のファイルがある場合は上書きする前に、上書き前のバックアップファイルを作成します。

 

バックアップファイルを作成するコマンド例

mv -b file1.txt file2.txt

もし移動先の「file2.txt」がすでに存在している場合は上書きされますが、上書き前のファイルはバックアップとして「file2.txt~」というファイル名で作成されます。

 

-f(–force)オプション

-f--force)オプションをつけると、移動先に同じ名前のファイルがあっても警告なしで上書きします。

移動先のファイルが開けない場合は、削除してからコピーします。

 

-i(–interactive)オプション

-i--interactive)オプションをつけると、もし移動先に同じ名前のファイルがあった場合は上書きしても良いか確認を表示させることができます。

 

「file1.txt」の名前を「file2.txt」を変更する際、「file2.txt」という名前のファイルがすでに存在していたら上書きしても良いか確認を行うコマンド例

mv -i file1.txt file2.txt

上書きする場合は yes や y 、しない場合は no や n を入力します。

 

-n(–no-clobber)オプション

-n--no-clobber)オプションをつけると、移動先にすでに同じ名前のファイルやディレクトリが存在している場合は上書きしません。

 

-S(–suffix)オプション

-S--suffix)オプションを使うと、-b--backup)オプションで作成されるバックアップファイルの名前の後ろにつく文字列を指定することができます。

 

バックアップファイルの名前の後ろにつく文字列を「_copy」に指定するコマンド例

mv -b -S _copy file1.txt file2.txt

もし移動先の「file2.txt」がすでに存在している場合は、バックアップファイルとして「file2.txt_copy」が作成されます。

 

バックアップファイルの名前の後ろにつく文字列を今日の日付に指定するコマンド例

mv -b -S _$(date +%Y%m%d) file1.txt file2.txt

もし移動先の「file2.txt」がすでに存在している場合は、バックアップファイルとして「file2.txt_20180101」のように今日の日付がついたファイルが作成されます。

 

–strip-trailing-slashes オプション

--strip-trailing-slashes オプションをつけると、移動元のファイルやディレクトリの名前の末尾に「/」がついている場合、移動先では「/」を削除した名前になります。

 

-t(–target-directory)オプション

-t--target-directory)オプションをつけると、オプションで指定したディレクトリに移動できます。

 

-T(–no-target-directory)オプション

通常は移動先がディレクトリだった場合、そのディレクトリの中にファイルを移動することになりますが、-T--no-target-directory)オプションをつけると、移動先の対象として、指定した名前に移動されます。

 

例えば以下のコマンドで、「directory1」という名前のディレクトリが「directory2」という名前のディレクトリの下に移動されます。

cp -r directory1 directory2

 

それに対して以下のように -T--no-target-directory)オプションをつけた場合、「directory1」のディレクトリの中にあるファイルが、「directory2」のディレクトリの中に移動されます。

cp -rT directory1 directory2

 

-u(–update)オプション

-u--update)オプションをつけると、移動先に同じ名前のファイルが存在していた際に、そのファイルのタイムスタンプが移動元のファイルより新しいか同じだったら移動しません。

 

-v(–verbose)オプション

-v--verbose)オプションをつけると、移動を行う際の情報を表示します。

 

以下のように移動したファイルの情報が表示されます。

 

まとめ

以上、Linuxコマンド「mv」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「mv」コマンドでファイルやディレクトリ(フォルダ)を移動したり、ファイル名を変更(リネーム)することができる。
  • 移動元や移動先はパスで指定できる。

 

Linuxコマンド入門メニュー