zzxworld

Linux cp 命令使用指南

Linux cp 命令使用指南

cp 是使用 Linux 系统时最常用的命令,它用来复制文件和目录。从指定的来源文件复制到目标处,或者将多个源文件复制到目标目录中。

cp 命令格式

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

cp 命令示例

复制指定的单个文件(/etc/hosts)到当前目录:

cp /etc/hosts ./

复制指定的文件到当前目录,如果当前目录已经存在此文件,就创建一个备份:

cp -b /etc/hosts ./

复制指定目录(/etc)下的所有内容到当前目录:

cp -r /etc ./

复制文件是保留属性,并配合 date 命令附加年月日格式的时间戳:

cp -a test.txt "test-$(date +"%Y-%m-%d_%H:%M:%S").txt"

上面的例子还有另外一种写法:

cp -a test.txt test-`date +"%Y-%m-%d_%H:%M:%S`.txt

cp 命令选项参数

缩写 完整名称 说明
-a --archive -dR --preserve=all 相同
--attributes-only 不要复制文件数据,仅仅复制其属性值。
--backup[=控制参数] 为每个已存在的目标文件创建一个备份
-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 永远不要跟随源文件中的符号链接
-p --preserve=mode,ownership,timestamps 相同
--preserve[=属性列表] 保留指定的属性(默认:模式、从属关系、时间戳)
--no-preserve=属性列表 不要保留指定的属性
--parents 在目标目录下使用完整的源文件名
-R, -r --recursive 递归地复制文件
--reflink[=WHEN] 控制克隆/写入时复制(CoW)副本。详情见下文
--remove-destination 在尝试打开每个已存在的目标文件之前对其进行删除(和 --force 行为相反)
--sparse=WHEN 控制稀疏文件的创建。详情见下文
--strip-trailing-slashes 移除每个源文件参数后的任何末尾斜杠
-s --symbolic-link 使用符号链接代替复制
-S --suffix=后缀名 使用给定名称代替常用备份后缀名
-t --target-directory=目录 将所有源文件参数给出的内容复制到目标目录中
-T --no-target-directory 将目标文件当作普通文件对待(而不是目录)
-u --update 仅在源文件比目标文件新,或者目标文件不存在的情况下复制
-v --verbose 显示复制过程
-x --one-file-system 停留在当前文件系统中
-Z 将目标文件 SELinux 安全上下文设置为默认类型
--context[=CTX] 类似 -Z,或者如果给定了上下文(CTX)那么将 SELinux 或者 SMACK 安全上下文设置为给定值
--help 显示此帮助信息并退出
--version 显示版本信息并退出