实验如下:
mv a b
若b已经存在且为文件 , 则会产生提示:
root@192.168.12.160:test# ls
name1.txt name_2_dir name2.txt name_dir
root@192.168.12.160:test# mv name1.txt name2.txt
mv: overwrite `name2.txt'?
root@192.168.12.160:test# mv name_dir name1.txt
mv: overwrite `name1.txt'?
若b已经存在且为目录 , 则会将a移动到b目录下
root@192.168.12.160:test# ls
name1.txt name_2_dir name2.txt name_dir
root@192.168.12.160:test# mv name1.txt name_dir
root@192.168.12.160:test# mv name_2_dir name_dir
root@192.168.12.160:test# ls
name2.txt name_dir
root@192.168.12.160:test# ls name_dir/
name1.txt name_2_dir
由以上操作结果可知:
① 当我们需要移动文件的时候需要确定该文件是否存在,然后是否需要覆盖
② 当我们需要改名的时候,一定要注意的是改名之后的文件或者目录是否存在,否则我们以为是改名了,实际上执行的是移动操作。比如上面的例子,我们需要把目录name_2_dir 改名为 name_dir,要是我们不去核实name_dir是否存在,就会产生更名成功的幻觉,其实只是把name_2_dir 移动到了name_dir目录。这一点要及其注意,因为有一次我更改数据库名称通过更改文件夹名称的方法做的,但是没有想到已经存在了目的名称的目录,导致整个目录是一个移动操作。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31385648/viewspace-2127335/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31385648/viewspace-2127335/