1、命令简介

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

2、用法

     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
[root@cent6 directory]# cp a.txt  b.txt
实例2:将文件a.txt复制成文件b.txt,显示详细信息 
[root@cent6 directory]# cp -v a.txt  b.txt
`a.txt' -> `b.txt'
实例3:复制文件,只有源文件较目的文件的修改时间新时,才复制文件
[root@cent6 directory]# cp -uv  a.txt  c.txt

实例4:采用交互方式将文件a.txt复制成文件d.txt
[root@cent6 directory]# cp -iv a.txt  d.txt
cp: overwrite `d.txt'? y
`a.txt' -> `d.txt'
实例5:将文件a.txt复制成d.txt,因为目的文件已经存在,所以指定使用强制复制的模式
[root@cent6 directory]# cp -fv a.txt  d.txt
`a.txt' -> `d.txt'

实例6:递归将目录dir1复制到目录dir2下面(此时dir2不存在)
[root@cent6 directory]# cp -rv dir1 dir2
`dir1' -> `dir2'
`dir1/c.txt' -> `dir2/c.txt'
`dir1/a.txt' -> `dir2/a.txt'
`dir1/b.txt' -> `dir2/b.txt'
`dir1/d.txt' -> `dir2/d.txt'
实例7:递归将目录dir1复制到目录dir2下面(此时dir2已经存在)
[root@cent6 directory]# cp -rv  dir1  dir2
`dir1/c.txt' -> `dir2/dir1/c.txt'
`dir1/a.txt' -> `dir2/dir1/a.txt'
`dir1/b.txt' -> `dir2/dir1/b.txt'
`dir1/d.txt' -> `dir2/dir1/d.txt'
实例8:复制时保留文件属性
[root@cent6 directory]# ll
total 0
-rwxrwxrwx 1 root root 0 Apr 16 16:54 a.txt
[root@cent6 directory]# cp a.txt /tmp/a1.txt
[root@cent6 directory]# cp -p a.txt /tmp/a2.txt
[root@cent6 directory]# ll /tmp
total 12
-rwxr-xr-x 1 root root 0 Apr 16 16:56 a1.txt
-rwxrwxrwx 1 root root 0 Apr 16 16:54 a2.txt

实例9:复制时产生备份文件
[root@cent6 directory]# cp -bv a.txt  /tmp/
`a.txt' -> `/tmp/a.txt'
[root@cent6 directory]# cp -bv a.txt /tmp/
`a.txt' -> `/tmp/a.txt' (backup: `/tmp/a.txt~')
[root@cent6 directory]# ll /tmp
total 0
-rwxr-xr-x 1 root root 0 Apr 16 17:02 a.txt
-rwxr-xr-x 1 root root 0 Apr 16 17:02 a.txt~
实例10:创建文件的硬链接(有同样的inode),而不是拷贝它们
[root@oracledb dir1]# cp -l a.txt  b.txt
[root@oracledb dir1]# cp a.txt c.txt
[root@oracledb dir1]# ls -li
总用量 0
4718769 -rw-r--r-- 2 root root 0 4月 16 17:18 a.txt
4718769 -rw-r--r-- 2 root root 0 4月 16 17:18 b.txt
4718772 -rw-r--r-- 1 root root 0 4月 16 17:28 c.txt
实例11:复制的 a.txt 建立一个连结档 a_link.txt
[root@cent6 directory]# cp -sv a.txt  a_link.txt
`a.txt' -> `a_link.txt'
[root@cent6 directory]# ll
total 0
lrwxrwxrwx 1 root root 5 Apr 16 17:06 a_link.txt -> a.txt
-rwxrwxrwx 1 root root 0 Apr 16 16:54 a.txt
12:不随符号链接拷贝原文件
[root@oracledb dir1]# ll
总用量 0
lrwxrwxrwx 1 root root 5 4月 16 17:30 a_link.txt -> a.txt
-rw-r--r-- 1 root root 0 4月 16 17:18 a.txt
[root@oracledb dir1]# cp -P a_link.txt c.txt
[root@oracledb dir1]# ll
总用量 0
lrwxrwxrwx 1 root root 5 4月 16 17:30 a_link.txt -> a.txt
-rw-r--r-- 1 root root 0 4月 16 17:18 a.txt
lrwxrwxrwx 1 root root 5 4月 16 17:31 c.txt -> a.txt
实例13:指定备份文件尾标 
[root@oracledb dir1]# cp -v -S _bak a.txt   /tmp/
"a.txt" -> "/tmp/a.txt"
[root@oracledb dir1]# cp -v -S _bak a.txt /tmp/
cp:是否覆盖"/tmp/a.txt"? y
"a.txt" -> "/tmp/a.txt" (备份:"/tmp/a.txt_bak")

每天一个linux命令(6):cp的更多相关文章

  1. 每天一个linux命令:cp(8)

    cp cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文件时, ...

  2. 每天一个Linux命令(7): cp

    cp命令         该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大.         语法: cp [选项] 源文件或目录 目标文件或目录 ...

  3. 2018/03/20 每日一个Linux命令 之 cp

    cp 命令用于复制文件/目录 cp [-参数] [复制文件] [复制成为的新文件] 参数(这里只介绍平常会用到的,之后的话遇到再回来补充) -f 覆盖已经存在的目标文件而不给出提示. -i 与-f选项 ...

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

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

  5. 每天一个linux命令目录

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

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

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

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

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

  8. 每天一个Linux命令

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

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

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

随机推荐

  1. 关系网络数据可视化:2. Python数据预处理

    将数据中导演与演员的关系整理出来,得到导演与演员的关系数据,并统计合作次数 import numpy as np import pandas as pd import matplotlib.pyplo ...

  2. bind注意事项(传引用参数的时候)

    默认情况下,bind的那些不是占位符的参数被拷贝到bind返回的可调用对象中. 当需要把对象传到bind中的参数中时,需要使用ref或者cref. 例如: #include<iostream&g ...

  3. 《Thinking In Java》阅读笔记

    <Thinking In Java>阅读笔记 前四章:对象导论. 一切都是对象. 操作符. 控制执行流程 public在一个文件中只能有一个,可以是一个类class或者一个接口interf ...

  4. HBase读写数据的详细流程及ROOT表/META表介绍

    一.HBase读数据流程 1.Client访问Zookeeper,从ZK获取-ROOT-表的位置信息,通过访问-ROOT-表获取.META.表的位置,然后确定数据所在的HRegion位置: 2.Cli ...

  5. CLR Via第一 章 知识点整理(4) FCL、CTS、CLI和CLS

    FCL(Framework Class Library) Framework 类库: FCL是 .net Framework 包含的一组DLL程序集的统称,FCL包含了提供了很多功能,关于这一部分没有 ...

  6. python核心语法

    一.语句和语法 #:注释 \:转译回车,继续上一行,在一行语句较长的情况下可以使用其来切分成多行,因其可读性差所以不建议使用 ::将两个语句连接到一行,可读性差,不建议使用 ::将代码的头和体分开 语 ...

  7. 错误解决记录------------mysql连接本地数据库显示"can't get hostname for your address"

    mysql连接本地数据库遇到 can't get hostname for your address 不明原因的本地mysql数据库连接不上,总是显示can't get hostname for yo ...

  8. [模板][P3803]多项式乘法

    Description: FFT真的容易忘,所以就放到上面来了 #include<bits/stdc++.h> using namespace std; const int mxn=4e6 ...

  9. 谈一谈java里面的反射机制

    首先来看看百度百科中是如何定义的: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方 ...

  10. [P2996][USACO10NOV]拜访奶牛Visiting Cows (树形DP)

    之前写在洛谷,结果没保存,作废…… 听说考前写题解RP++哦 思路 很容易想到是 树形DP 如果树形DP不知道是什么的话推荐百度一下 我在这里用vector储存边 设状态f[i][0]为i点不访问,f ...