前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux命令(25)——cp命令

Linux命令(25)——cp命令

作者头像
恋喵大鲤鱼
发布2018-08-03 11:08:11
6.4K0
发布2018-08-03 11:08:11
举报
文章被收录于专栏:C/C++基础C/C++基础

1.简介

cp命令主要用于复制文件或目录,可以将一个或多个源文件或者目录复制到指定的目的文件或目录,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

2.命令格式

代码语言:javascript
复制
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

3.选项说明

代码语言:javascript
复制
-a,--archive:此参数的效果和同时指定"-dR --preserve=all"参数相同;
--backup[=CONTROL]:备份即将被覆盖的目的文件;
-b:等同与--backup,但不接受参数;
--copy-contents:递归拷贝时,拷贝特殊文件的内容;
-d:当复制符号连接时,保留符号连接; 
-f,--force:强行复制文件或目录,不论目标文件或目录是否已存在; 
-i,--interactive:覆盖既有文件之前先询问用户; 
-H:遵循源文件中的命令行符号链接;
-l,--link:对源文件建立硬连接,而非复制文件;
-L, --dereference:总是遵循源文件中的命令行符号链接;
-n, --no-clobber:不覆盖既有文件;
-P,--no-dereference:不遵循源文件的符号连接;
-p:等同于--preserve=mode,ownership,timestamps;
--preserve[=ATTR_LIST]:保留指定的文件属性,而非默认的mode,ownership,timestamps)。其它的属性也可以指定,如:context, links, xattr, all;
-c:等同于--preserve=context;
--no-preserve=ATTR_LIST:不保留指定的文件属性;
--parents:在目录下使用完整的源文件名;
-R,-r,--recursive:递归处理,将指定目录下的所有文件与子目录一并处理;
--reflink[=WHEN]:控制克隆/CoW 副本。请查看下面的内容;
--remove-destination:移动每一个已经存在的目标文件;
--sparse=WHEN:控制创建稀疏文件;
--strip-trailing-slashes:删除参数SOURCE中所有目录末端的斜杠;
-s,--symbolic-link:对源文件建立符号连接,而非复制文件;
-S, --suffix=SUFFIX:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-t, --target-directory=DIRECTORY:拷贝所有SOURCE指定的文件到目标目录DIRECTORY;
-T, --no-target-directory:没有目标目录,将目标文件DEST视为正常文件;
-u,--update:使用这项参数后只会在源文件的更改时间较目标文件新时或是名称相互对应的目标文件并不存在时,才复制文件;
-v, --verbose:冗余模式执行cp命令,解释cp的执行过程;
-x, --one-file-system:保留在当前的文件系统上;
-Z, --context=CONTEXT:将指定的文本内容变为安全的内容,该选项仅限于SELinux内核使用;
--help:显示帮助信息;
--version:显示版本信息;

选项补充说明。 (1)默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也被为稀疏。这是因为默认情况下使用了--sparse=auto参数。如果明确使用 --sparse=always 参数则不论源文件是否包含足够长的0 序列也将目标文件创文 建为稀疏件。使用--sparse=never参数禁止创建稀疏文件。

(2)当指定了--reflink[=always]参数时,执行轻量化的复制,即只在数据块被修改的情况下才复制。如果复制失败或者同时指定了--reflink=auto,则返回标准复制模式。

(3)备份文件的后缀为”~”,除非以--suffix选项或是SIMPLE_BACKUP_SUFFIX环境变量指定。版本控制的方式可通过--backup选项或VERSION_CONTROL环境变量来选择。以下是可用的变量值: none, off:不进行备份(即使使用了–backup 选项); numbered, t:备份文件加上数字进行排序; existing, nil:若有数字的备份文件已经存在则使用数字,否则使用普通方式备份; simple, never:永远使用普通方式备份。

(4)有一个特别情况,如果同时指定--force--backup选项,而源文件和目标文件是同一个已存在的一般文件的话,cp会将源文件备份。

4.常用示例

(1)复制dir目录到dir2。

代码语言:javascript
复制
cp -r dir dir2

(2)复制文件a、b、c、d到dir2。

代码语言:javascript
复制
cp a b c d dir2

(3)交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中。

代码语言:javascript
复制
cp -i /usr/men m*.c /usr/zh

我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。


参考文献

[1]man cp [2]百度知道.cp简介

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年11月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简介
  • 2.命令格式
  • 3.选项说明
  • 4.常用示例
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档