linux 复制文件 输出日志
cp -rf /var/lib/docker /tmp/dockerbak 2>log.txt
{#more-13089}
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
实例
使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:
$ cp --r source/ dest
注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R 。
2.cp -rf 出现复制不覆盖文件问题
一般我们在linux系统使用命令cp -rf 复制并覆盖文件,会提示文件覆盖确认操作。
输入alias命令,显示 cp='cp -i', cp命令被系统设置了别名,
-i参数是文件覆盖提示确认操作,可以看到别名 ,也就是当执行cp的时候,其实执行的是cp -i参数
3.解决文件复制覆盖提示操作问题
方法1:编写带cp的路径复制覆盖文件
/bin/cp -rf 源码文件 目标文件
强制覆盖文件,以及目录
方法2:在CP命令前面加一个斜杠\,实现强制覆盖文件
如果方法1 不行,那么就用方法2
补充:
有时候
cp --r --f a/* b
不起做那个,覆盖的时候还是提示 的原因是 因为我们用了 别名, alias
终端执行:
alias
原来一些服务器会默认增加别名 alias cp='cp -i',当你执行cp时,其实执行的是cp --i。
在alias cp='cp -i'前加上"#"注释掉这行,:wq!保存推出,然后重新登陆就可以了。