在linux服务器中使用root用户执行cp命令时,当目标文件存在时会询问是否进行覆盖。有时候我们是明确的知道我们是需要对文件进行覆盖的,在交互命令行模式下我们可以输入y进行确认,但是当在shll脚本中执行cp时就会比较麻烦了。
解决方案 方案一编辑~/.bashrc 注释掉 Alias cp='cp -i'
方案二使用 cp 执行 即在 cp前加上反斜杠
方案三使用/bin/cp 执行
cp语法cp [options] source dest
或
cp [options] source... directory
参数说明:
- -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
- -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
- -f:覆盖已经存在的目标文件而不给出提示。
- -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -l:不复制文件,只是生成链接文件。



