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

Linux终端命令——cp

作者头像
瑞新
发布2020-07-08 11:39:13
32.3K0
发布2020-07-08 11:39:13
举报

1、命令简介

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

2、用法

代码语言:javascript
复制
 cp [选项]... [-T] 源文件 目标文件

或:cp [选项]… 源文件… 目录  或:cp [选项]… -t 目录 源文件…

3、选项

-a, --archive 等于-dR --preserve=all,与同时指定 -dpR 这三个选项效果一样,用于复制整个目录,包括目录中的子目录等都递归的复制,而且还要保持文件的访问模式,所有者,时间戳等属性与原文件一样。 –backup[=CONTROL 为每个已存在的目标文件创建备份 -b 类似–backup 但不接受参数 –copy-contents 在递归处理是复制特殊文件内容 -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 使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; -v, --verbose 详细显示命令执行的操作。 -x, --one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件 -Z, --context=CONTEXT set security context of copy to CONTEXT

4、实例

实例1:将文件a.txt复制成文件b.txt

代码语言:javascript
复制
bennyrhys@ubuntu:~/Desktop/test1$ ls
mk1.txt
bennyrhys@ubuntu:~/Desktop/test1$ cp mk1.txt mk2.txt
cp: -r not specified; omitting directory 'mk1.txt'
bennyrhys@ubuntu:~/Desktop/test1$ cp -r mk1.txt mk2.txt
bennyrhys@ubuntu:~/Desktop/test1$ ls
mk1.txt  mk2.txt

注意:加-r 这样就可以成功的解决了。 解释一下: -r 这个options 是递归的意思。

实例2:将文件a.txt复制成文件b.txt,显示详细信息

代码语言:javascript
复制
bennyrhys@ubuntu:~/Desktop/test1$ ls
mk1.txt
bennyrhys@ubuntu:~/Desktop/test1$ cp -v mk1.txt mk2.txt
cp: -r not specified; omitting directory 'mk1.txt'
bennyrhys@ubuntu:~/Desktop/test1$ cp -vr mk1.txt mk2.txt
'mk1.txt' -> 'mk2.txt'

实例3:复制文件,只有源文件较目的文件的修改时间新时,才复制文件

代码语言:javascript
复制
bennyrhys@ubuntu:~/Desktop/test1$ ls
mk1.txt  mk2.txt
bennyrhys@ubuntu:~/Desktop/test1$ cp -ruv mk2.txt mk1.txt
'mk2.txt' -> 'mk1.txt/mk2.txt'
bennyrhys@ubuntu:~/Desktop/test1$ ls
mk1.txt  mk2.txt
bennyrhys@ubuntu:~/Desktop/test1$ cp -ruv mk2.txt mk3.txt
'mk2.txt' -> 'mk3.txt'
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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