$ cp -a a/ b/ (或者cp -a a b,效果是一样的)
$ tree
.
|-- a
| |-- file1
| `-- file2 -> file1
`-- b
|-- a
| |-- file1
| `-- file2 -> file1
|-- file1
`-- file2 -> file1
3 directories, 6 files
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
为文件或目录改名,或将文件由一个目录移入另一个目录中。视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
命令的主要OPTION的含义:
(1) -i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
(2) -f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户在不经意的情况下用mv命令破坏另一个文件,建议用户在使用mv命令移动文件时,最好使用-i选项。
注意,mv作“移动”功能使用时(target是已存在的目录名),其语义和Windows下的剪切+粘贴是有区别的。比如有如下目录结构: