命令行手册

Man » cp 手册在线 - cp man 页面的详细在线文档

🌍
cp - 复制文件和目录

概要

cp [选项]... [-T] 源 目标
cp [选项]... 源... 目录
cp [选项]... -t 目录 源...

描述

将源复制到目标,或将多个源复制到目录。

长选项的必需参数,短选项也必须是必需的。

-a, --archive
与 -dR --preserve=all 相同

--attributes-only
不复制文件数据,只复制属性

--backup[=控制]
为每个现有的目标文件创建备份

-b     与 --backup 类似,但不接受参数

--copy-contents
递归时复制特殊文件的内容

-d     与 --no-dereference --preserve=links 相同

--debug
解释如何复制文件。 隐含 -v

-f, --force
如果现有的目标文件无法打开,则删除它并重试(如果同时使用 -n 选项,则忽略此选项)

-i, --interactive
在覆盖之前提示(覆盖以前的 -n 选项)

-H     在源中跟随命令行中的符号链接

-l, --link
使用硬链接文件而不是复制

-L, --dereference
始终在源中跟随符号链接

-n, --no-clobber
(已弃用)静默跳过现有文件。 另请参阅 --update

-P, --no-dereference
在源中从不跟随符号链接

-p     与 --preserve=mode,ownership,timestamps 相同

--preserve[=ATTR_LIST]
保留指定的属性

--no-preserve=ATTR_LIST
不保留指定的属性

--parents
在目录中使用完整的文件名

-R, -r, --recursive
递归复制目录

--reflink[=WHEN]
控制克隆/写时复制。 参见下文

--remove-destination
在尝试打开目标文件之前,删除每个现有的目标文件(与 --force 相对)

--sparse=WHEN
控制创建稀疏文件。 参见下文

--strip-trailing-slashes
删除每个源参数中的任何尾随斜杠

-s, --symbolic-link
创建符号链接而不是复制

-S, --suffix=后缀
覆盖通常的备份后缀

-t, --target-directory=目录
将所有源参数复制到目录中

-T, --no-target-directory
将目标视为普通文件

--update[=UPDATE]
控制更新哪些现有文件;UPDATE={all,none,none-fail,older(默认)}

-u     等效于 --update[=older]。 参见下文

-v, --verbose
解释正在执行的操作

--keep-directory-symlink
跟随现有的目录符号链接

-x, --one-file-system
保持在当前文件系统

-Z     将目标文件的 SELinux 安全上下文设置为默认类型

--context[=CTX]
与 -Z 类似,或者如果指定了 CTX,则将 SELinux 或 SMACK 安全上下文设置为 CTX

--help 显示此帮助并退出

--version
输出版本信息并退出

ATTR_LIST 是一个逗号分隔的属性列表。 属性包括:'mode' 表示权限(包括任何 ACL 和 xattr 权限),'ownership' 表示用户和组,'timestamps' 表示文件时间戳,'links' 表示硬链接,'context' 表示安全上下文,'xattr' 表示扩展属性, 以及 'all' 表示所有属性。


默认情况下,通过一个简单的启发式方法检测稀疏的 SOURCE 文件,并相应地使相应的 DEST 文件也变为稀疏。这是通过 --sparse=auto 选项选择的行为。指定 --sparse=always 以在 SOURCE 文件包含足够长的零字节序列时,始终创建一个稀疏的 DEST 文件。使用 --sparse=never 以禁止创建稀疏文件。

UPDATE 控制目标位置中的哪些现有文件会被替换。如果未指定 --update 选项,则默认操作为 'all',结果是目标位置中的所有现有文件都将被替换。'none' 类似于 --no-clobber 选项,即目标位置中的任何文件都不会被替换,并且跳过的文件不会导致失败。'none-fail' 也确保目标位置中的任何文件都不会被替换,但任何跳过的文件都会被诊断并导致失败。'older' 是指定了 --update 选项时的默认操作,结果是如果文件比相应的源文件旧,则文件将被替换。

当指定 --reflink[=always] 时,执行轻量级复制,其中仅在修改时才复制数据块。如果这是不可能的,则复制失败,或者如果指定了 --reflink=auto,则回退到标准复制。使用 --reflink=never 以确保执行标准复制。

备份后缀为 '\~',除非通过 --suffixSIMPLE_BACKUP_SUFFIX 设置。可以通过 --backup 选项或通过 VERSION_CONTROL 环境变量选择版本控制方法。以下是值:

^ one, off 永远不创建备份(即使提供了 --backup)。

^ umbered, t 创建编号备份。

^ xisting, nil 如果存在编号备份,则创建编号备份,否则创建简单备份。

^ imple, never 始终创建简单备份。

作为一种特殊情况,当提供了 --force--backup 选项,并且 SOURCE 和 DEST 具有相同的名称以表示一个现有的常规文件时,cp 会对 SOURCE 进行备份。

AUTHOR

作者:Torbjorn Granlund、David MacKenzie 和 Jim Meyering。

REPORTING BUGS

GNU coreutils 在线帮助:[https://www.gnu.org/software/coreutils/] 将任何翻译错误报告到:[https://translationproject.org/team/]

SEE ALSO

install(1)

完整文档 [https://www.gnu.org/software/coreutils/cp] 或者可以在本地通过以下方式获取:info '(coreutils) cp invocation'

由 Debian (9.7-3) 封装 版权所有 © 2025 自由软件基金会,公司。 许可 GPLv3+:GNU GPL 版本 3 或更高版本 [https://gnu.org/licenses/gpl.html]。 这是一个自由软件:您可以自由地修改和重新分发它。 在法律允许的范围内,不提供任何保证。