mv命令怎么知道是想改名字还是想移动呢
比如 mv 123 456
456 既可以是一个名字也可以是一个路径
回答
Bravian回答
mv source target
这里 source 表示源文件或者源目录,target 表示目标文件或者目标目录
其判断逻辑是这样的:
1. 首先判断 target 是不是一个已经存在的目录
1. 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
2. 如果目标文件不是目录文件,则源文件名(只能有一个源文件)会修改为目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,此时mv的作用就是和改文件名等效。
2. 另外,当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。所以,上面案例中先判断 test1 是不是已经存在的目录,经过检测发现是目录,那么就把源文件移动到 test1 下面。
(0)