如何写参数?文件到底被复制到哪儿去了?怎么复制一整个文件夹?什么叫递归复制?什么时候需要加 -r 选项?
本文用最形象、最通俗的方式解释清楚以上全部内容,希望有所帮助。
先画一张目录的树状图:
1、文件C,复制到目录A,不改名
$ cp fC dirA
2、文件C,复制到目录A,改名为 fC_cp(需注意,若不存在命名冲突,则新建文件成功,否则会覆盖原有文件内容,并且不会有任何覆盖提醒)
$ cp fC dirA/fC_cp
3、文件C、文件D,一起复制到目录B,不改名
$ cp fC fD dirB
4、目录B,复制到目录A里,改名为 dirH (涉及目录的复制,则需要递归,即加上 -r 选项)
$ cp -r dirB dirA/dirH
5、目录B里的所有文件,复制到目录A(B里只有文件,没有目录,本质上依旧是多个文件同时复制,因此不需要 -r)
$ cp dirB/* dirA
6、目录A里的所有文件,复制到目录B(A里不仅有文件,还有目录,所以也需要 -r)
$ cp -r dirA/* dirB
综上,不改名则写到目录,改名则写到新名;复制的内容中存在目录,则需加 -r。