用法:cp [选项]... 来源 目的地
或:cp [选项]... 来源... 目录
或:cp [选项]... --target-directory=目录 来源...
将<来源>文件复制至<目的地>,或将多个<文件>复制至<目录>。

长选项必须用的参数在使用短选项时也是必须的。
-a, --archive 等於 -dpR
--backup[=CONTROL] 为每个已存在的目的地文件创建备份文件
-b 类似 --backup,但不接受任何参数
--copy-contents 当使用递归模式时复制特殊文件的内容
-d 等於 --no-dereference --preserve=link
--no-dereference 不会找出符号链接指示的真正目的地
-f, --force 如果无法打开已存在的文件,会删除该文件并再
尝试打开
-i, --interactive 覆盖文件前需要确认
-H 使用命令列中的符号链接指示的真正目的地
-l, --link 链接而非复制文件
-L, --dereference 一定先找出符号链接指示的真正目的地
-p 等於 --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST] 若可能,保留指定的文件属性
(默认值为:mode,ownership,timestamps)
额外的属性有:links、all
--sno-preserve=ATTR_LIST 不保留指定的文件属性
--parents 复制前先在<目录>创建来源文件路径中的所有目录
-P 等於‘--no-dereference’
-R, -r, --recursive 复制目录及目录内的所有项目
--remove-destination 尝试打开目的地文件前先删除已存在的目的地
文件 (与 --force 选项作对比)
--reply= 指定如何处理已存在的目的地文件
--sparse=WHEN 控制创建 sparse 文件的方式
--strip-trailing-slashes 删除参数中所有<来源>文件/目录末端的斜杠
-s, --symbolic-link 只创建符号链接而不是复制文件
-S, --suffix=后缀 自行指定备份文件的<后缀>
--target-directory=目录 将所有参数指定的<来源>文件/目录复制至<目录>
-u, --update 只在<来源>文件比目的地文件新,或目的地文件
不存在时才进行复制
-v, --verbose 详细显示进行的步骤
-x, --one-file-system 不会跨越文件系统进行操作
--help 显示此帮助信息并离开
--version 显示版本信息并离开

默认使用模式中,<来源>文件是否 sparse 文件会由一种粗略的方式决定,而且相应
的<目的地>文件也会是 sparse 文件。此方式等於使用 --sparse=auto 选项。指定
--sparse=always 则只要<来源>文件含有足够长的 0 字节都会产生 sparse 的
<目的地>文件。
使用 --sparse=never 会禁止产生 sparse 文件。

备份文件的后缀为‘~’,除非以 --suffix 选项或是 SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可透过 --backup 选项或 VERSION_CONTROL 环境
变量来选择。以下是可用的变量值:

none, off 不会进行备份 (即使使用了 --backup 选项)
numbered, t 备份文件会加上数字
existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
simple, never 永远使用普通方式备份

有一个特别情况:如果同时指定 --force 和 --backup 选项,而且<来源>和<目的地>
是同一个已存在的一般文件的话,cp 会将<来源>文件备份。

Report bugs to