cp命令

简介

cp(Copy file):将源文件复制至目标文件
或将多个源文件复制至目标目录。

语法

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

选项

  • -a-archive : 等于-dR –preserve=all,与同时指定 -dpR 这三个选项效果一样,用于复制整个目录,包括目录中的子目录等都递归的复制,而且还要保持文件的访问模式,所有者,时间戳等属性与原文件一样。
  • --backup[=CONTROL] : 为每个已存在的目标文件创建备份,类似–backup 但不接受参数
  • -b : 类似–backup 但不接受参数
  • --copy-contents : 在递归(recursive)处理时复制特殊文件内容
  • -d : 等于–no-dereference –preserve=links
  • -f-force : 如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)
  • -i--interactive: 覆盖前询问(使前面的 -n 选项失效)
    - 默认cp命令覆盖目标文件时是不会提示的,很多Linux发行版里的cp都被设置别名cp -i,其实作用就是给用户一个提醒。
    - 如果你不想被提示,那么请这样输入:\cp source target,或者使用cp命令的绝对路径/bin/cp
  • -H:跟随源文件中的命令行符号链接
  • -l-link : 对源文件建立硬链接,而非复制文件
  • -L-dereference : 总是跟随符号链接
  • -n-no-clobber不要覆盖已存在的文件(使前面的 -i 选项失效)
  • -P, --no-dereference : 不跟随源文件中的符号链接
  • -p : 等于–preserve=模式,所有权,时间戳
  • --preserve [=属性列表] 保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等
  • -c : same as –preserve=context
  • --sno-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 : copy only when the SOURCE file is newer than the destination file or when the destination file is missing
  • -v, --verbose : 详细显示命令执行的操作。
  • -x, --one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件
  • -Z, --context=CONTEXT : set security context of copy to CONTEXT`

实例

1、将文件a.txt 复制成文件b.txt
[root@VM_0_4_centos cp]# touch a.txt
[root@VM_0_4_centos cp]# cp a.txt b.txt
[root@VM_0_4_centos cp]# ll
total 0
-rw-r--r-- 1 root root 0 Jun 21 19:59 a.txt
-rw-r--r-- 1 root root 0 Jun 21 19:59 b.txt
2、将文件a.txt复制成文件b.txt,显示详细信息
[root@VM_0_4_centos cp]# cp -v a.txt c.txt
‘a.txt’ -> ‘c.txt’
3、复制文件,只有源文件较目的文件的修改时间新时,才复制文件
[root@VM_0_4_centos cp]# cp -uv a.txt d.txt
‘a.txt’ -> ‘d.txt’
[root@VM_0_4_centos cp]# ll
-rw-r--r-- 1 root root 0 Jun 21 19:59 a.txt
-rw-r--r-- 1 root root 0 Jun 21 19:59 b.txt
-rw-r--r-- 1 root root 0 Jun 21 21:46 c.t
-rw-r--r-- 1 root root 0 Jun 21 21:47 c.txt
-rw-r--r-- 1 root root 0 Jun 21 21:48 d.txt[root@VM_0_4_centos cp]# cp -uv a.txt d.txt
[root@VM_0_4_centos cp]# ll
total 0
-rw-r--r-- 1 root root 0 Jun 21 19:59 a.txt
-rw-r--r-- 1 root root 0 Jun 21 19:59 b.txt
-rw-r--r-- 1 root root 0 Jun 21 21:46 c.t
-rw-r--r-- 1 root root 0 Jun 21 21:47 c.txt
-rw-r--r-- 1 root root 0 Jun 21 21:48 d.txt
4、采用交互方式将文件a.txt复制成文件d.txt
[root@VM_0_4_centos cp]# cp -i  a.txt e.txt
cp: overwrite ‘e.txt’? y
5、将文件a.txt复制成d.txt,因为目的文件已经存在,所以指定使用强制复制的模式
[root@VM_0_4_centos cp]# \cp -f a.txt e.txt
6、递归将目录dir1复制到目录dir2下面(此时dir2不存在)
[root@VM_0_4_centos cp]# cp dir1 dir2
cp: omitting directory ‘dir1’
[root@VM_0_4_centos cp]# cp -r dir1 dir2
7、复制时保留文件属性
[root@VM_0_4_centos cp]# cp -p a.txt f.txt
[root@VM_0_4_centos cp]# ll
total 8
-rw-r--r-- 1 root root    0 Jun 21 19:59 a.txt
-rw-r--r-- 1 root root    0 Jun 21 19:59 b.txt
-rw-r--r-- 1 root root    0 Jun 21 21:46 c.t
-rw-r--r-- 1 root root    0 Jun 21 21:47 c.txt
drwxr-xr-x 2 root root 4096 Jun 21 22:03 dir1
drwxr-xr-x 2 root root 4096 Jun 21 22:04 dir2
-rw-r--r-- 1 root root    0 Jun 21 21:48 d.txt
-rw-r--r-- 1 root root    0 Jun 21 21:59 e.txt
-rw-r--r-- 1 root root    0 Jun 21 19:59 f.txt
8、复制时产生备份文件(如果文件存在的话,会对之前的文件备份)
[root@VM_0_4_centos cp]# cp -bv c.txt  /tmp/
cp: overwrite ‘/tmp/c.txt’?
[root@VM_0_4_centos cp]# cp -bv c.txt  /tmp/
cp: overwrite ‘/tmp/c.txt’? y
‘c.txt’ -> ‘/tmp/c.txt’ (backup: ‘/tmp/c.txt~’)
9、复制的 a.txt 建立一个连结档 a_link.txt
[root@VM_0_4_centos cp]# cp -s a.txt a_link
lrwxrwxrwx 1 root root    5 Jun 21 22:25 a_link -> a.txt
-rw-r--r-- 1 root root    0 Jun 21 19:59 a.txt
10、不随符号链接拷贝原文件
[root@VM_0_4_centos cp]# cp a_link.txt b_bink.txt
[root@VM_0_4_centos cp]# ll
total 0
lrwxrwxrwx 1 root root 5 Jun 21 22:32 a_link.txt -> a.txt
-rw-r--r-- 1 root root 0 Jun 21 22:31 a.txt
-rw-r--r-- 1 root root 0 Jun 21 22:32 b_bink.txt[root@VM_0_4_centos cp]# cp -P a_link.txt c_bink.txt
[root@VM_0_4_centos cp]# ll
total 0
lrwxrwxrwx 1 root root 5 Jun 21 22:32 a_link.txt -> a.txt
-rw-r--r-- 1 root root 0 Jun 21 22:31 a.txt
-rw-r--r-- 1 root root 0 Jun 21 22:32 b_bink.txt
lrwxrwxrwx 1 root root 5 Jun 21 22:33 c_bink.txt -> a.txt
11、指定备份文件尾标
[root@VM_0_4_centos cp]# cp -v -S _back a.txt /tmp/
cp: overwrite ‘/tmp/a.txt’? y
‘a.txt’ -> ‘/tmp/a.txt’ (backup: ‘/tmp/a.txt_back’)
#默认情况
[root@VM_0_4_centos cp]# cp -bv  a.txt /tmp/
cp: overwrite ‘/tmp/a.txt’? y
‘a.txt’ -> ‘/tmp/a.txt’ (backup: ‘/tmp/a.txt~’)

参考

http://www.cnblogs.com/xqzt/p/5398904.html

linux命令-cp命令相关推荐

  1. linux cp复制文件夹下的软连接,Linux培训:cp命令复制文件和目录

    Linux培训:cp命令复制文件和目录 更新时间:2019年04月02日16时56分 来源:传智播客linux培训 浏览次数: cp 是用于复制的命令,其基本信息如下: 命令名称:cp: 英文原意:c ...

  2. linux常用命令 cp命令的使用和介绍

    linux常用命令 cp命令的使用和介绍 1.从一台远程的linux服务器上复制文件到本机服务器

  3. C语言实现简单版Linux的cp命令

    C语言实现简单版的Linux的cp命令 前言: ​ 这是我的第一篇CSDN文章,写的不够好的地方有请各路大神指正.本人也是接触代码时间很短,在这里希望把自己学习到的知识写成一些有用的代码.后面有空的话 ...

  4. linux中如何撤销上次命令,linux撤销cp命令的提示

    在linux系统下,cp命令其实就是复制文件或目录的命令.那怎么取消cp命令的覆盖提示呢?下面由学习啦小编为大家整理了linux撤销cp命令提示的方法,希望对大家有帮助! 1.linux cp命令说明 ...

  5. 谈谈Linux系统CP命令如何做到0.2秒复制100G大文件?

    谈谈Linux系统CP命令如何做到0.2秒复制100G大文件? 文章目录 谈谈Linux系统CP命令如何做到0.2秒复制100G大文件? cp 引发的思考 文件系统 为什么 cp 那么快? 结语 cp ...

  6. linux cp命令覆盖恢复,Linux中用cp命令直接覆盖不提示的方法

    Linux中用cp命令直接覆盖不提示的方法 在Linux下,如果希望将文件file拷贝到目录dir下,可以执行: cp file dir 但如果dir下已经存在一个名为file的文件的时候,系统总是会 ...

  7. linux cp命令不提示覆盖,Linux中cp命令不提示直接覆盖的方法

    新做了服务器,cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,这在大量cp覆盖操作的时候是不能忍受的. 把a目录下的文件复制到b目录 cp –r a/* b 执行上面的命令时,b存在的每个文件都 ...

  8. Linux命令 - cp命令

    Linux命令 - cp命令   cp 是copy的缩写,Linux中 cp命令用来复制文件或者目录.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖 ...

  9. linux中cp命令的常见用法

    本篇博客来讨论linux中cp命令. cp命令用来复制文件或文件夹.它主要有两种形式 # 用法一:复制一个文件 $ cp [option] src-file target-file# 用法二:复制多个 ...

  10. linux 拷贝覆盖文件,Linux取消cp命令覆盖文件提示的方法

    在Linux系统中使用cp命令来拷贝文件,但是使用cp命令把文件复制到dir目录中的时候总会提示是不是要覆盖文件.那么怎么样取消提示让Linux直接复制文件呢? 实际上这个提示是一个很好的功能,它能够 ...

最新文章

  1. 源码编译 busybox
  2. leetcode327 超时大坑
  3. 自动化工具之二:win32gui
  4. VTK:图片之ImageMagnitude
  5. 关于linux LVM
  6. 开源的DevOps开发工具箱
  7. Casperjs中fill提交表单遇到的问题
  8. 最近公共祖先LCA 【专题@AbandonZHANG】
  9. IPython系统相关内容及其配置信息
  10. 2020 年微服务领域开源数字化报告发布,阿里扛起微服务大旗
  11. 纯粹经济学 —— 基本概念
  12. 重大发现: windows下C++ UI库 UI神器-SOUI(转载)
  13. WPF Ribbon 开发资料分享
  14. 防止被偷窥和修改 Office文档保护秘笈
  15. 学习iOS逆向有什么用?
  16. TX1、跨平台文件传输工具\使用记录
  17. 测试固态硬盘寿命软件,SSD能用多久在哪看 检测固态硬盘寿命方法
  18. 首个可用于深度学习的ToF相关数据集——基于置信度的立体相机以及ToF相机深度图融合框架
  19. linux原子过程,linux系统编程:IO读写过程的原子性操作实验
  20. 云端原生数据泄露事件解析

热门文章

  1. Linux的rz命令
  2. 惠普cq42笔记本怎么u盘启动详细教程
  3. laravel扩展Images生成海报
  4. 微信小程序自定义navigation-bar导航栏(自适应安卓苹果)
  5. Vue项目打包后dist文件目录详解
  6. 科技的成就(二十六)
  7. webhook自定义服务器,创建传出 Webhook
  8. MyBatis:缓存机制详解
  9. 快速批量下载视频you-get,B站视频下载工具
  10. Maven安装目录的详解