Linux核心应用命令速查
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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参数,如果目标文件存在,则报警提示。