cp -rf 提示是否覆盖的问题

Linux中的cp命令有如下参数:

-a   :相当于 -pdr 的意思;
-d   :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f   :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i   :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!

-l   :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p   :连同档案的属性一起复制过去,而非使用预设属性;
-r   :递归持续复制,用于目录的复制行为;
-s   :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u   :若 destination 比 source 旧才更新 destination !

当我们想要用一个文件覆盖另外一个文件但不希望出现提示的时候,可以使用:cp -rf file1 file2

但是实际上,我们在使用cp -rf 时还是会出现提示。出现这种现象的原因是我们执行的cp命令实际上是cp -i 命令。

Linux中有个alias命令,它可以设置命令的别名,我们执行#alias,可以看到如下内容:


若要使得cp -rf 不再提示覆盖,可以通过修改别名,将alias cp='cp -i' 注释掉,使用#vim  ~/.bashrc,如下所示




版权声明:本文为guge907原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。