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)的更多相关文章

  1. 每天一个 Linux 命令(21):find命令之xargs

    在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出 ...

  2. 每天一个linux命令目录

    出处:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每 ...

  3. 每天一个 Linux 命令(20):find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...

  4. 每天一个linux命令(20):find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...

  5. 每天一个Linux命令

    每天一个Linux命令(1):ls命令 每天一个Linux命令(2):cd命令 每天一个Linux命令(3):pwd命令 每天一个 Linux 命令(4):mkdir 每天一个 Linux 命令(5) ...

  6. 每天一个linux命令-转载

    每天一个linux命令目录 转载自: http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html   开始详细系统的学习linux常用命令 ...

  7. [转]每天一个linux命令目录

    [转]每天一个linux命令目录 http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每 ...

  8. 每天一个Linux命令(20)--find命令之exec

    find 是我们很常用的一个Linux命令,但是我们一般查找出来的额并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是 comm ...

  9. 每天一个Linux命令 (转)

    一. 文件目录操作命令: 1.每天一个linux命令(1):ls命令 2.每天一个linux命令(2):cd命令  3.每天一个linux命令(3):pwd命令 4.每天一个linux命令(4):mk ...

随机推荐

  1. 【leetcode】1021. Remove Outermost Parentheses

    题目如下: A valid parentheses string is either empty (""), "(" + A + ")", ...

  2. JS中的作用域及闭包

    1.JS中的作用域 在 es6 出现之前JS中只有全局作用域和函数作用域,没有块级作用域,即 JS 在函数体内有自己的作用域,但是如果不是在函数体的话就全部都是全局作用域.比如在 if.for 等有 ...

  3. flutte页面布局四

    AspectRatio 组件 AspectRatio 的作用是根据设置调整子元素 child 的宽高比. AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展,widget 的高度是由 ...

  4. Appium运行报错:No Chromedriver found that can automate Chrome '39.0.0'

    运行appium切换webview时候遇到报错:’No Chromedriver found that can automate Chrome 'xx.xx.xx' 此报错是因为Appium在运行过程 ...

  5. 洛谷 P3806 (点分治)

    题目:https://www.luogu.org/problem/P3806 题意:一棵树,下面有q个询问,问是否有距离为k的点对 思路:牵扯到树上路径的题都是一般都是点分治,我们可以算出所有的路径长 ...

  6. 正确设置nginx/php-fpm/apache权限 提高网站安全性 防止被挂木马

    核心总结:php-fpm/apache 进程所使用的用户,不能是网站文件所有者. 凡是违背这个原则,则不符合最小权限原则. 根据生产环境不断反馈,发现不断有 php网站被挂木马,绝大部分原因是因为权限 ...

  7. Fail-Fast 机制

    Java 集合(Collection)的一种错误机制: 当多个线程操作集合时,就有可能产生这个错误. 当某个线程正在迭代这个集合的时候,另外一个线程对这个集合做了修改就会产生ConcurrentMod ...

  8. 关于设置shadowPath的重要性

    这是超级容易添加阴影到iOS中的任何视图.所有您需要做的是 添加QuartzCore框架到项目中(如果不存在的话) 导入QuartzCore到您的执行文件 添加一行如[myView.layer set ...

  9. python and 用法

    >>> 1 and [] and [1] [] >>> 1 and [2] and [1] [1] >>> 0 and [1] and [2] 0

  10. net core配置log4net需要注意的地方

    和netframework不一样的是,netcore 没有assembly文件.所以配置的时候需要注意: 1.配置文件可以没有 <configSections> <section n ...