Cp (Unix)

cp是一个用于复制文件的UNIX命令。文件可以被复制到相同目录下，也可以复制到其他完全不同的目录中（甚至复制到不同的文件系统或是硬盘中）。如果文件将被复制到相同的目录中，那么目标文件文件必须使用不同于原文件的文件名；在其他情况下，目标文件的名称允许使用与原文件相同或不同的名称。原始的文件不会被改变。
cp 命令现在拥有多种实现版本，两个主要的版本是POSIX cp 与 GNU cp。 GNU cp 有许多额外的选项。

用法

将文件复制为另一文件：
 cp [-f] [-H] [-i] [-p][--] 源文件 目标文件
将文件复制到一目录下：
 cp [-f] [-H] [-i] [-p] [-r | -R] [--] 源文件... 目标目录
将目录复制为另一目录（必须使用参数-r 或 -R）：
 cp [-f] [-H] [-i] [-p] [--] { -r | -R } 源目录... 目标目录

范例

欲复制原文件的一份副本，执行：
     cp prog.c prog.bak
这一操作把文件prog.c复制为prog.bak。如果prog.bak文件不存在，cp命令将创建此文件。如果目标文件已存在，cp命令将用原文件的内容替代目标文件中的内容。
欲复制当前工作目录中的文件到另外一目录中，执行：
     cp jones /home/nick/clients
这一操作将jones 文件复制到/home/nick/clients/jones。
欲将文件复制为新的文件，并保留修改日期与相关的访问控制权限，执行：
     cp -p smith smith.jr
操作将smith文件复制为smith.jr文件。此时系统将给与smith.jr与smith文件相同的修改日期和时间而并不使用当前的系统时间。smith.jr文件同时也继承了smith文件的访问控制保护。
欲将某目录中所有文件复制到新目录中，执行：
     cp /home/janet/clients/* /home/nick/customers
这一操作仅将clients目录中的文件复制到customers目录中。
欲将一个目录，包括其包含的所有文件与子目录复制到另一目录中，执行：
     cp -R /home/nick/clients /home/nick/customers
这一复制将clients目录以及其中包含的所有文件、子目录与子目录中的文件复制到customers/clients目录下。
注意在原目录的结尾无斜杠符：如果你在GNU基础的系统上执行cp -R /home/nick/clients/ /home/nick/customers，这与原目录没有加结尾斜杠符的效果相同。 
但如果你在BSD基础系统上执行相同的命令，这将复制所有client目录中的内容，而不是client目录本身。
欲将复制指定的一些文件到另一目录中，执行：
     cp jones lewis smith /home/nick/clients
这一操作复制当前工作目录下的jones、lewis和smith 文件到/home/nick/clients 目录。
欲使用模式匹配字符集来复制文件，执行：
     cp programs/*.c .
这一操作将programs目录下所有以.c 结尾的文件都复制到当前目录下，当前目录用单个点符号. 表示。在 .c 和最后的. 之间必须用空格隔开。
将文件复制到另一已存在文件的过程是：将已存在文件以更新模式打开（使用这一模式需要拥有目标文件的写入权限）。操作的结果是目标文件保留了其原来拥有的权限位。