每天一个linux命令:cp(8)
cp
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误
格式
cp [选项] [参数]
参数选项
| 参数 | 备注 |
|---|---|
| -a | 此参数的效果和同时指定"-dpR"参数相同; |
| -d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录; |
| -f | 强行复制文件或目录,不论目标文件或目录是否已存在; |
| -i | 覆盖既有文件之前先询问用户; |
| -l | 对源文件建立硬连接,而非复制文件; |
| -p | 保留源文件或目录的属性; |
| -R/r | 递归处理,将指定目录下的所有文件与子目录一并处理; |
| -s | 对源文件建立符号连接,而非复制文件; |
| -u | 使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; |
| -S | 在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; |
| -b | 覆盖已存在的文件目标前将目标文件备份; |
| -v | 详细显示命令执行的操作。 |
- 源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用
-R选项; - 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
实例
复制单个文件到目标目录,文件在目标文件中不存在
命令: cp myFile ./targetDir/myFile
[root@VM_0_9_centos test]# mkdir targetDir && cp myFile ./targetDir/myFile
[root@VM_0_9_centos test]# tree
.
|-- myFile
`-- targetDir
`-- myFile #复制的文件
复制单个文件到目标目录下并改名
命令: cp myFile ./targetDir/myFile2
[root@VM_0_9_centos test]# mkdir targetDir && cp myFile ./targetDir/myFile2
[root@VM_0_9_centos test]# tree
.
|-- myFile
`-- targetDir
`-- myFile2 #复制的文件
目标文件存在时,会询问是否覆盖
命令:**cp myFile ./targetDir/myFile2 **
[root@VM_0_9_centos test]# cp myFile ./targetDir/myFile2
cp: overwrite ?./targetDir/myFile2?. y
复制整个目录
命令: cp -a sourceDir targetDir/ cp -r sourceDir targetDir
[root@VM_0_9_centos test]# tree
.
|-- sourceDir
| |-- myFile1
| `-- myFile2
`-- targetDir
2 directories, 2 files
[root@VM_0_9_centos test]# cp -a sourceDir targetDir
[root@VM_0_9_centos test]# tree
.
|-- sourceDir
| |-- myFile1
| `-- myFile2
`-- targetDir
`-- sourceDir
|-- myFile1
`-- myFile2
3 directories, 4 files
复制的文件时,只生成连接文档,而非真正的复制
命令:cp -s test.txt test_link.txt
root@VM_0_9_centos test]# ll
total 8
drwxr-xr-x 2 root root 4096 Oct 27 23:05 sourceDir
drwxr-xr-x 3 root root 4096 Oct 27 23:38 targetDir
[root@VM_0_9_centos test]# touch test.txt
[root@VM_0_9_centos test]# cp -s test.txt test_link.txt
[root@VM_0_9_centos test]# ll
total 8
drwxr-xr-x 2 root root 4096 Oct 27 23:05 sourceDir
drwxr-xr-x 3 root root 4096 Oct 27 23:38 targetDir
lrwxrwxrwx 1 root root 8 Oct 27 23:44 test_link.txt -> test.txt
-rw-r--r-- 1 root root 0 Oct 27 23:44 test.txt
拷贝覆盖文件,避免出现确认提示y的方法
命令:**\cp -a sourceDir targetDir **
[root@VM_0_9_centos test]# tree
.
|-- sourceDir
| |-- myFile1
| `-- myFile2
`-- targetDir
`-- sourceDir
|-- myFile1
`-- myFile2
3 directories, 4 files
[root@VM_0_9_centos test]# ls -l targetDir/sourceDir/
total 0
-rw-r--r-- 1 root root 0 Oct 27 23:05 myFile1
-rw-r--r-- 1 root root 0 Oct 27 23:05 myFile2
[root@VM_0_9_centos test]# cp -a sourceDir targetDir
cp: overwrite ?.argetDir/sourceDir/myFile1?. y
cp: overwrite ?.argetDir/sourceDir/myFile2?. y
[root@VM_0_9_centos test]# \cp -a sourceDir targ etDir
[root@VM_0_9_centos test]# tree
.
|-- sourceDir
| |-- myFile1
| `-- myFile2
`-- targetDir
`-- sourceDir
|-- myFile1
`-- myFile2
3 directories, 4 files
参考
每天一个linux命令:cp(8)的更多相关文章
- 每天一个 Linux 命令(21):find命令之xargs
在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ...
- 每天一个linux命令目录
出处:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每 ...
- 每天一个 Linux 命令(20):find命令之exec
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec 参数后面跟的是command ...
- 每天一个linux命令(20):find命令之exec
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec 参数后面跟的是command ...
- 每天一个Linux命令
每天一个Linux命令(1):ls命令 每天一个Linux命令(2):cd命令 每天一个Linux命令(3):pwd命令 每天一个 Linux 命令(4):mkdir 每天一个 Linux 命令(5) ...
- 每天一个linux命令-转载
每天一个linux命令目录 转载自: http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令 ...
- [转]每天一个linux命令目录
[转]每天一个linux命令目录 http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每 ...
- 每天一个Linux命令(20)--find命令之exec
find 是我们很常用的一个Linux命令,但是我们一般查找出来的额并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec 参数后面跟的是 comm ...
- 每天一个Linux命令 (转)
一. 文件目录操作命令: 1.每天一个linux命令(1):ls命令 2.每天一个linux命令(2):cd命令 3.每天一个linux命令(3):pwd命令 4.每天一个linux命令(4):mk ...
随机推荐
- setNeedsDisplay和setNeedsLayout方法
参考:https://blog.csdn.net/sunnyboy9/article/details/51458401 . UIView的setNeedsDisplay和setNeedsLayout方 ...
- springmvc对象作为 目标方法的参数。
/** * Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配, 自动为该对象填充属性值.支持级联属性. * 如:dept.deptId.dept.address.tel 等 */ ...
- spring-boot整合mybaits多数据源动态切换案例
1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/springBo ...
- 【CF906E】Reverses(回文自动机,最小回文分割)
题意:给定两个长度相等的仅由小写字母组成的串A和B,问在A中最少选择多少段互不相交的子串进行翻转能使A和B相同 len<=5e5 思路:构造新串S=a[1]b[1]a[2]b[2]...a[n] ...
- Java常用数据结构Set, Map, List
1. Set Set相对于List.Map是最简单的一种集合.集合中的对象不按特定的方式排序,并且没有重复对象. 特点: 它不允许出现重复元素: 不保证和政集合中元素的顺序 允许包含值为null的元素 ...
- LOJ 2997 「THUSCH 2017」巧克力——思路+随机化+斯坦纳树
题目:https://loj.ac/problem/2977 想到斯坦纳树.但以为只能做 “包含一些点” 而不是 “包含一些颜色” .而且不太会处理中位数. 其实 “包含一些颜色” 用斯坦纳树做也和普 ...
- AcWing 252. 树 (点分治)打卡
题目:https://www.acwing.com/problem/content/254/ 题意:求一棵树上,路径<=k的有多少条 思路:点分治,我们用两个指针算solve函数,首先对算出来的 ...
- spring cloud gateway 拦截request Body
在接入Spring-Cloud-Gateway时,可能有需求进行缓存Json-Body数据或者Form-Urlencoded数据的情况. 由于Spring-Cloud-Gateway是以WebFlux ...
- Nuget-Swagger-Swashbuckle:Swashbuckle
ylbtech-Nuget-Swagger-Swashbuckle:Swashbuckle 1.返回顶部 1. Seamlessly adds a Swagger to WebApi projects ...
- pod 查看当前源/添加源
1 pod 查看当前源 PeiSongs-iMac:5i5jAPP chenpeisong$ pod repo 0 repos 2 pod repo换源 CocoaPods 镜像使用帮助CocoaPo ...