ディレクトリがあるとしましょう/hello
。
だから私はそうしましたmv /hello /hello2
。
/hello
引っ越したいですか/hello2/hello
?それとも私が/hello
引っ越しているのでしょうか/hello2
?
これは一貫性のない結果をもたらすようです。
ベストアンサー1
mv a b
a
ifb
がb
ディレクトリであるか、ディレクトリへのシンボリックリンクに入ります。それ以外の場合は名前a
がに変更されます(または他のファイルシステムにある場合はコピーおよび削除されます)b
。
ファイルをディレクトリに移動する一貫した結果を得るには、次のようにします。
mv file dir/.
存在しないとdir
エラーが発生し、名前は変更されませfile
んdir
。
mv file dir/
また、動作しますが、file
それ自体が型の場合は機能しません。目次そしてdir
それ自体は存在しません。
一方、rename
ターゲットファイルがディレクトリとして存在するかどうかを心配することなく作業を実行するには、GNU mvを使用して次のことを実行できます。
mv -T file dest
この場合、ディレクトリの場合はfile
移動されません。ただし、 がすべてディレクトリで空の場合は名前が変更され、ソースは削除されます。どちらもディレクトリで、空でない場合は文句を言います。dest
dest
file
dest
dest
file
dest
dest
dest
mv -T
file
もしあればdest
同じいいえディレクトリ(ディレクトリへのシンボリックリンクを含む)のfile
名前が変更されdest
(書き込み権限がない場合はメッセージが表示されますがdest
)、元のディレクトリはdest
削除されます。ディレクトリシンボルリンクの場合、mv file dest
状況は異なります。dest
を使用すると、-T
名前file
をに変更しますdest
が、使用しない場合は、-T
指すfile
ディレクトリに移動しますdest
。
その後、名前mv -T file dest
がfile
変更されるdest
か、エラーメッセージ(またはプロンプト)が表示されます。コマンドが成功すると、元のコマンドdest
(以前に存在していた場合)が削除されます。