GNU Core Utilities/mv
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.txt
を file2.txt
という名前に変更。
ファイルをディレクトリに移動
編集mv file1.txt directory/
file1.txt
を directory/
に移動。
ディレクトリごと移動
編集mv dir1 dir2
dir1
を dir2
にリネーム(dir2
が存在する場合は dir1
を dir2/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 版といくつか違いがあります。
主な違い:
編集-n
(上書き禁止)オプションが FreeBSD にはないmv -n file1.txt file2.txt
は FreeBSD ではエラーになる。- 代替手段として、
[ -e file2.txt ] || mv file1.txt file2.txt
を使う。
--backup
オプションが FreeBSD にはない- FreeBSD でバックアップを作成するには、手動で
cp
してからmv
する必要がある。 - 例:
cp file1.txt file1.bak && mv file1.txt file2.txt
- FreeBSD でバックアップを作成するには、手動で
- GNU coreutils 版を FreeBSD で使う方法
coreutils
パッケージをインストールするとgmv
という名前で GNU 版mv
が使える。
pkg install coreutils gmv -n file1.txt file2.txt # GNU coreutils 版の mv
詳しくは、それぞれの環境で man mv
を確認してください。