MV(1)

名称
mv - ファイルの移動

書式
mv [-f | -i | -n] [-v] source target mv [-f | -i | -n] [-v] source ... directory

解説
1 番目の書式の場合、 mv ユーティリティは source オペランドで指定される名前のファイルの名前を、 target オペランドで指定される名前のデスティネーションパスに変更します。 最後に指定されるオペランドが既に存在するディレクトリの名前ではない場合に この書式であるとされます。

2 番目の書式の場合、各々の source オペランドで指定される名前のファイルを、 directory オペランドで指定される名前で既に存在するディレクトリの中の デスティネーションファイルに移動します。 各々のオペランドに対応するデスティネーションパスは、 ``最後のオペランド''と``スラッシュ''と``ファイルのパス名の最後の部分'' の結合によって生成されるパス名です。

オプションとしては以下のものがあります:

-f  デスティネーションパスを上書きする前に、 書き込みパーミッションがあるなしにかかわらず、確認せず実行します。 ( -f オプションが指定されると、それ以前の -i オプションまたは -n オプションは無視されます。)

-i  すでに移動先に同名のファイルが存在する場合、実行してよいかどうか確認を 標準エラー出力を使用して 求めます。標準入力から ‘y’ または ‘Y’ で始まる文字列が入力されると、実行されます。 ( -i オプションが指定されると、それ以前の -f オプションまたは -n オプションは無視されます。)

-n  既存のファイルを上書きしません。 ( -n オプションが指定されると、それ以前の -f オプションまたは -i オプションは無視されます。)

-v  mv を冗長にし、移動後にファイルを表示させます。

source オペランドとデスティネーションパスがともにディレクトリである場合を除き、 オペランドもしくはデスティネーションパスに ディレクトリを指定することは誤りです。

デスティネーションパスが書き込み許可をしていない場合、 mv は、 -i オプションと同じように、 ユーザの確認を求めます。

mv は、通常、システムコール rename(2) を使ってファイルの移動をします。しかし、 rename(2) は、ファイルシステムを越えてファイルを移動することがで きません。このため、 source と target が違うファイルシステム上の場合、 mv は、 cp(1) と rm(1) を使って移動を行います。これは、次の結果と等価です。

    rm -f destination_path && \
    cp -pRP source_file destination && \
    rm -rf source_file

診断

関連項目
cp(1), rm(1), symlink(7)

互換性
-n および -v は標準ではありませんし、スクリプト中での使用はお勧めしません。

規格
mv ユーティリティは p1003.2 互換です。

歴史
mv コマンドは AT&T UNIX から登場しました。