这是
cp
命令在 Linux 系统下的帮助文档内容,以下是对其主要信息的梳理:命令格式
cp
命令有以下几种常用格式:cp [OPTION]... [-T] SOURCE DEST
:将SOURCE
(源文件或源目录)复制到DEST
(目标文件或目标目录)。cp [OPTION]... SOURCE... DIRECTORY
:把多个SOURCE
(可以是多个文件或目录)复制到DIRECTORY
中。cp [OPTION]... -t DIRECTORY SOURCE...
:功能和第二种格式类似,只是参数顺序有所不同,明确指定目标目录后接要复制的源文件或源目录。
常用选项及含义
-a
,--archive
:等同于-dR --preserve=all
,用于归档复制,会保留文件的所有属性并递归处理目录等,通常用于备份等场景。--attributes-only
:只复制文件的属性,而不复制文件的数据内容。--backup[=CONTROL]
:对已存在的目标文件进行备份,备份的具体方式(如编号备份、简单备份等)可以通过CONTROL
参数或者环境变量VERSION_CONTROL
来控制。-b
:类似--backup
但不接受参数,默认备份后缀是~
。--copy-contents
:在递归复制时,复制特殊文件的内容。-d
:等同于--no-dereference --preserve=links
,不跟踪符号链接指向的文件本身,而是保留链接属性。-f
,--force
:如果目标文件无法打开,会移除它然后再次尝试复制(当和-n
选项一起使用时,该选项会被忽略)。-i
,--interactive
:在覆盖目标文件前提示用户确认,会覆盖之前使用的-n
选项的设置。-H
:跟踪命令行中源文件的符号链接。-l
,--link
:创建硬链接而不是复制文件内容,这样源文件和目标文件在磁盘上指向相同的数据块。-L
,--dereference
:始终跟踪源文件中的符号链接,复制链接指向的实际文件内容。-n
,--no-clobber
:不覆盖已存在的文件,会覆盖之前使用的-i
选项的设置。-P
,--no-dereference
:从不跟踪源文件中的符号链接,和-d
选项的部分功能类似。-p
:等同于--preserve=mode,ownership,timestamps
,保留文件的模式(权限)、所有者、时间戳等属性。--preserve[=ATTR_LIST]
:可以指定保留特定的属性(默认是模式、所有者、时间戳等),还可以额外指定像context
(安全上下文等)、links
、xattr
等属性,或者直接用all
表示保留所有能保留的属性。--no-preserve=ATTR_LIST
:不保留指定的属性。--parents
:在目标目录下使用源文件的完整文件名(包含路径)进行复制,常用于按原文件结构复制到新目录等情况。-R
,-r
,--recursive
:递归复制目录及其内容,用于复制整个目录树结构。--reflink[=WHEN]
:控制克隆 / 写时复制(CoW)的行为,比如指定--reflink=always
时进行轻量级复制(只有数据块被修改时才复制),若不可行则复制失败;--reflink=auto
会在前者不可行时回退到标准复制;--reflink=never
则确保执行标准复制。--remove-destination
:在尝试打开目标文件之前,移除已存在的目标文件(与--force
相反的操作逻辑)。--sparse=WHEN
:控制稀疏文件的创建,--sparse=auto
是根据简单的启发式方法检测源文件是否为稀疏文件,并相应地使目标文件也为稀疏文件;--sparse=always
是只要源文件包含足够长的零字节序列就创建稀疏目标文件;--sparse=never
则禁止创建稀疏文件。-s
,--symbolic-link
:创建符号链接而不是复制文件内容,符号链接指向源文件的位置。-S
,--suffix=SUFFIX
:覆盖默认的备份后缀(默认是~
)。-t
,--target-directory=DIRECTORY
:明确指定将所有源文件复制到的目标目录。-T
,--no-target-directory
:把目标DEST
当作普通文件处理。-u
,--update
:仅当源文件比目标文件新或者目标文件不存在时才进行复制,常用于增量备份等场景。-v
,--verbose
:在复制过程中显示详细的操作信息,解释正在做什么。-x
,--one-file-system
:复制操作只在当前文件系统内进行,不跨越文件系统边界。-Z
:将目标文件的 SELinux 安全上下文设置为默认类型,类似功能还有--context[=CTX]
,可以指定具体的安全上下文设置。
总之,
cp
命令用于文件和目录的复制操作,通过各种选项可以灵活地控制复制的具体行为、属性保留、备份策略等诸多方面,以满足不同的使用场景需求。