cp命令实现不覆盖

cp 命令参数以及覆盖与不覆盖

1.参数详解

cp (复制档案或目录)

[root@linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination)
[root@linux ~]# cp [options] source1 source2 source3 .... directory
参数:
-a   :相当于 -pdr 的意思;
-d   :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f   :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i   :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l   :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p   :连同档案的属性一起复制过去,而非使用预设属性;
-r   :递归持续复制,用于目录的复制行为;
-s   :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u   :若 destination 比 source 旧才更新 destination !
最后需要注意:
1)如果来源档有两个以上,则最后一个目的文件一定要是『目录』才行!
2)由于 cp 有种种的档案属性与权限的特性,所以,在复制时,您必须要清楚的了解到: 
• 是否需要完整的保留来源档案的信息? 
• 来源档案是否为连结档 (symbolic link file)? 
• 来源档是否为特殊的档案,例如 FIFO, socket 等? 
• 来源文件是否为目录?

2.cp覆盖目标文件

shell>cp -Rf a1 a2

3.cp不覆盖目标文件

shell>awk 'BEGIN { cmd="cp -ri a1/* a2/"; print "n" |cmd; }'
注:a1为原文件夹,a2为目标文件夹

你可能感兴趣的:(Ubuntu)