Linux cp命令 目录的合并以及文件的覆盖

cp -frap 原目录/* 目标目录/
-f 强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖)
-r 递归复制,包含目录
-a 做一个备份,这里可以不用这个参数,我们可以先备份整个test目录
-p 保持新文件的属性不变
实现合并和覆盖是用cp,而不是mv。

一、cp命令语法 cp [options]

cp [options] source1 source2 source3 …. directory

上面第一条命令为单个文件或目录拷贝,下一个为多个文件拷贝到最后的目录。

options选项包括:

– a 保留链接和文件属性,递归拷贝目录,相当于下面的d、p、r三个选项组合。
– d 拷贝时保留链接。
– f 删除已经存在目标文件而不提示。
– i 覆盖目标文件前将给出确认提示,属交互式拷贝。
– p 复制源文件内容后,还将把其修改时间和访问权限也复制到新文件中。
– r 若源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。当然,目标文件必须为一个目录名。
– l 不作拷贝,只是链接文件。
-s 复制成符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u 若 destination 比 source 旧才更新 destination。

二、cp命令使用范例

1、文件到文件复制 将文档a复制成b(相当于备份并改名)。

cp -i a b

或,

cp a b

2、文件到目录复制 将文档 file1复制到dir1目录下,复制后名称仍未file1

cp -i file1 dir1

或,

cp file1 dir1

3、目录到目录复制 将目录dir1复制到dir2目录下,复制结果目录被改名为dir2

cp -r dir1 dir2

将目录dir1下所有文件包括文件夹,都复制到dir2目录下

cp -r dir1/* dir2

4、常见错误:

提示cp: omitting directory错误

复制目录时,使用-r选项即可递归拷贝,如下:

cp -r dir1 dir2

复制多个文件夹到同一目录

cp -r /data/web/wordpress/wp-content/plugins/{redis-cache,wp-fastest-cache,wp-fastest-cache-premium}  /data/web/bolg/wp-content/plugins/