mv コマンドは、ファイルやディレクトリを移動または名前変更するためのコマンドです。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。

基本的な使い方

編集
mv [オプション] 移動元 移動先

主なオプション(GNU coreutils版)

編集
主なオプション
オプション 説明
-i, --interactive 上書き前に確認
-f, --force 上書きを強制
-n, --no-clobber 既存のファイルを上書きしない
-v, --verbose 移動処理を表示
-u, --update 既存のファイルより新しい場合のみ移動
--backup[=CONTROL] 既存ファイルをバックアップ
--strip-trailing-slashes 末尾のスラッシュを削除

ファイルの移動(リネーム)

編集
mv file1.txt file2.txt

file1.txtfile2.txt という名前に変更。

ファイルをディレクトリに移動

編集
mv file1.txt directory/

file1.txtdirectory/ に移動。

ディレクトリごと移動

編集
mv dir1 dir2

dir1dir2 にリネーム(dir2 が存在する場合は dir1dir2/dir1 に移動)。

上書き確認付きで移動

編集
mv -i file1.txt file2.txt

file2.txt が存在する場合、上書きするか確認される。

上書きせずに移動(-n

編集
mv -n file1.txt file2.txt

file2.txt が存在する場合、何もしない。

バックアップを作成しながら移動

編集
mv --backup file1.txt file2.txt

file2.txt が存在する場合、バックアップ (file2.txt~) を作成。

詳細表示しながら移動

編集
mv -v file1.txt file2.txt

移動した内容を表示。

FreeBSD 版との違い

編集

FreeBSD でも mv コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。

主な違い:

編集
  1. -n(上書き禁止)オプションが FreeBSD にはない
    • mv -n file1.txt file2.txt は FreeBSD ではエラーになる。
    • 代替手段として、[ -e file2.txt ] || mv file1.txt file2.txt を使う。
  2. --backup オプションが FreeBSD にはない
    • FreeBSD でバックアップを作成するには、手動で cp してから mv する必要がある。
    • 例:
      cp file1.txt file1.bak && mv file1.txt file2.txt
    
  3. GNU coreutils 版を FreeBSD で使う方法
    • coreutils パッケージをインストールすると gmv という名前で GNU 版 mv が使える。
    pkg install coreutils
    gmv -n file1.txt file2.txt  # GNU coreutils 版の mv
    

詳しくは、それぞれの環境で man mv を確認してください。