2.5 cp:复制文件
作用:文件或目录的复制。
用法:cp [选项]...[-T]源目的
或cp [选项]...源...目录
或cp [选项]...-t目录源...
将<源>文件复制至<目的>,或将多个<源>复制至<目录>。
主要选项如下。
● -a:等同于-dpR参数一起使用。在复制过程中尽可能保留源文件或目录的属性。
● -b:给被覆盖的文件做备份。比如我们把file1复制到file2时,如果file2存在,我们把file2覆盖掉,用这个参数就能同时生成一个名为file2~的文件,注意文件名后有~作为结尾。
● -d:不间接引用符号链接,保持源文件和目标文件之间的硬链接关系。
● -f:删除已存在的目标文件。
● -i:覆盖已存在的目标文件之前给出警告提示,这是人机交互的选项。
● -l:建立文件硬链接,而不是复制。
● -p:保存源文件或目录的最后修改时间和模式,比如要保持目标目录或文件的属主、组、权限和最后访问(或修改)时间。
● -R:复制目录时,包括此目录下所有的子目录和文件。
● -s:建立源文件的符号链接,而不是复制源文件。源文件名必须用绝对路径。
● -r:复制目录时,包括此目录下所有的子目录和文件;-r选项不同于-R之处在于尝试打开目的地文件前先删除已存在的目的地文件。
● -i:人机交互模式,显示覆盖已存在的文件或目录的警告信息。
● -v:在复制之前,输出每个文件的名字。
应用实例如下。
(1)参数-i的示例
# cp -i Kernel.rpm Plist cp:是否覆盖“Plist”?y
人机交互参数-i的运用,将源文件复制到目标文件时,如果目标文件存在,则提出警告。
(2)参数-a的示例及说明
把源目录复制到另外的一个目标目录,相当于克隆了一个目录,源目录和目标目录所在用户组、权限及修改或访问时间保持一致。
# cp -a mydir youdir
复制目录mydir到youdir,如果youdir目录不存在,则创建。并且把mydir中所有的文件下级子目录都复制到youdir目录中。也就是说mydir目录的文件和youdir是一样的。-a参数等同于-dpR,并且源目录和目标目录的属性(用户组、权限、最后访问及修改时间)都一致。
(3)参数-b的示例
把源文件复制为目标文件,并且尝试-b参数的运用。
# cp fonts.scale fonts.dir把一个文件复制为另一个文件。
# cp -bi fonts.scale fonts.dir cp:是否覆盖“fonts.dir”? y
注意 因为用了-i参数,如果目标文件存在,则报警提示。