Linux cp强制覆盖文件操作

cp是一个用于复制文件 的 UNIX 命令。文件可以被复制到相同目录下,也可以复制到其他完全不同的目录中(甚至复制到不同的文件系统或是硬盘中。)。如果文件将被复制到相同的目录中,那么目标文件文件必须使用不同于原文件的文件名;在其他情况下,目标文件的名称允许使用与原文件相同或不同的名称。原始的文件不会被改变。

在Linux操作系统中,经常会遇到文件覆盖的操作,有时候需要将多个文件或多个文件夹进行批量覆盖。然而直接使用cp -r -f 的命令都需要确认是否覆盖文件。在Linux用户环境下,默认是将cp等命令默认加了cp -i选项,cp -i选项为可以通过更改用户下目录下的.bashrc文件来做到无需确认。

cp命令的用法

将文件复制为另一文件:

将文件复制到一目录下:

将目录复制为另一目录(必须使用参数 -r 或 -R):

参数说明:

-f (强制) – 在目标文件因没有写权限而无法打开时删除目标文件。这一移除动作先于所有的cp命令复制动作。

-L (间接引用) – 使cp命令跟随符号链接,这样cp命令将复制符号链接指向的文件而不是符号链接到目的位置。

-i (交互) – 提示您将要被覆盖之文件的文件名。当目标目录或是目标文件中包含一个与原文件(或目录)名字相同的文件(或目录)时,交互就会发生,如果你输入 'y' 或者区域语言中等价于 'y'的字符,cp操作将覆盖目标文件,其余的任意回答都会避免目标文件被原文件覆盖。

-p (保持) – 对于每个原文件(或目录),在复制时也复制下述特性:
最后一次修订时间与最后一次访问时间。
所属用户ID和所属组ID(仅在有权限如此做时)。
文件权限位以及SUID和SGID权限位。

-R or -r (递归) – 复制目录(递归地复制目录中的所有内容)

默认用户下的alias配置如下:

我们需要在alias cp='cp -i'前面使用#符号进行注释,这样默认的cp 命令就不带任何参数,再对文件进行cp -r -f时就不会重复出现需要确认的操作。

.bashrc文件位于当前用户的根目录下,vi ~/.bashrc即可编辑。编辑完按Esc键输入:wq保存退出,重新登录之后即可生效。

『—ENDOF—』

Comments are closed.