cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。

1.命令格式:

用法:

cp [选项]... [-T] 源 目的

或:cp [选项]... 源... 目录

或:cp [选项]... -t 目录 源...

2.命令功能:

  将源文件复制至目标文件,或将多个源文件复制至目标目录。

3.命令参数:

-a, --archive      等于-dR --preserve=all

--backup[=CONTROL  为每个已存在的目标文件创建备份

-b                      类似--backup 但不接受参数

--copy-contents           在递归处理是复制特殊文件内容

-d                      等于--no-dereference --preserve=links

-f, --force             如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)

-i, --interactive            覆盖前询问(使前面的 -n 选项失效)

-H                               跟随源文件中的命令行符号链接

-l, --link                  链接文件而不复制

-L, --dereference        总是跟随符号链接

-n, --no-clobber          不要覆盖已存在的文件(使前面的 -i 选项失效)

-P, --no-dereference       不跟随源文件中的符号链接

-p                                    等于--preserve=模式,所有权,时间戳

--preserve[=属性列表      保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等

-R, -r, --recursive  复制目录及目录内的所有项目

4.命令实例:

实例一:复制单个文件到目标目录,文件在目标文件中不存在

命令:

cp log.log test5

输出:

[root@localhost test]# cp log.log test5

[root@localhost test]# ll

-rw-r--r--  root root     - : log.log

drwxr-xr-x  root root  - : scf

drwxrwxrwx  root root  - : test3

drwxr-xr-x  root root  - : test5

[root@localhost test]# cd test5

[root@localhost test5]# ll

-rw-r--r--  root root  - : log5-.log

-rw-r--r--  root root  - : log5-.log

-rw-r--r--  root root  - : log5-.log

-rw-r--r--  root root  - : log.log

说明:

  在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。

实例二:目标文件存在时,会询问是否覆盖

命令:

cp log.log test5

输出:

[root@localhost test]# cp log.log test5

cp:是否覆盖“test5/log.log”? n

[root@localhost test]# cp -a log.log test5

cp:是否覆盖“test5/log.log”? y

[root@localhost test]# cd test5/

[root@localhost test5]# ll

-rw-r--r--  root root  - : log5-.log

-rw-r--r--  root root  - : log5-.log

-rw-r--r--  root root  - : log5-.log

-rw-r--r--  root root  - : log.log

说明:

  目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。

实例三:复制整个目录

命令:

输出:

目标目录存在时:

[root@localhost test]# cp -a test3 test5 

[root@localhost test]# ll

-rw-r--r--  root root     - : log.log

drwxr-xr-x  root root  - : scf

drwxrwxrwx  root root  - : test3

drwxr-xr-x  root root  - : test5

[root@localhost test]# cd test5/

[root@localhost test5]# ll

-rw-r--r--  root root     - : log5-.log

-rw-r--r--  root root     - : log5-.log

-rw-r--r--  root root     - : log5-.log

-rw-r--r--  root root     - : log.log

drwxrwxrwx  root root  - : test3

目标目录不存在时:

[root@localhost test]# cp -a test3 test4

[root@localhost test]# ll

-rw-r--r--  root root     - : log.log

drwxr-xr-x  root root  - : scf

drwxrwxrwx  root root  - : test3

drwxrwxrwx  root root  - : test4

drwxr-xr-x  root root  - : test5

[root@localhost test]#

说明:

  注意目标目录存在与否结果是不一样的。目标目录存在时,整个源目录被复制到目标目录里面。

实例四:复制的 log.log 建立一个连结档 log_link.log

命令:

cp -s log.log log_link.log

输出:

[root@localhost test]# cp -s log.log log_link.log

[root@localhost test]# ll

lrwxrwxrwx  root root     - : log_link.log -> log.log

-rw-r--r--  root root     - : log.log

drwxr-xr-x  root root  - : scf

drwxrwxrwx  root root  - : test3

drwxrwxrwx  root root  - : test4

drwxr-xr-x  root root  - : test5

说明:

  那个 log_link.log 是由 -s 的参数造成的,建立的是一个『快捷方式』,所以您会看到在文件的最右边,会显示这个文件是『连结』到哪里去的!

linux常用命令:cp 命令的更多相关文章

  1. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  2. Linux 常用的压缩命令有 gzip 和 zip

    Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 相应的解压缩命令则是 gunzip 和 unzip ...

  3. 每天一个命令-cp 命令

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

  4. 每天一个Linux常用命令 cp命令

    Linux cp命令主要用于复制文件或目录 -a:此选项通常在复制目录时使用,它保留链接.文件属性,并复制目录下的所有内容.其作用等于dpR参数组合. -d:复制时保留链接.这里所说的链接相当于Win ...

  5. LINUX常用配置及命令

    一.   Fedora系统配置 1.      [设置网卡IP] 步骤如下: 1)     用root用户登陆,打开/etc/sysconfig/network-scripts/ifcfg-eth0文 ...

  6. Linux常用的基础命令总结

    man 查看英文命令帮助   可以看作--help 拷贝目录的命令cp -a  包含所有 ls -a 显示所有文件包括隐藏文件  -ld ls -F 过滤目录文件(给不同类型文件结尾加上不同的符号) ...

  7. linux常用20条命令

    1.cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径.如: cd /root/Docements # 切换到 ...

  8. linux常用配置文件和命令总结

    常用配置文件说明: 1..设置-n永远生效:Vim的配置文件:命令模式想永久生效, ~/.vimrc,新建文件,在里面输入保存即可 2.设置别名永远生效:在~/.bashrc  修改当前用户家目录里的 ...

  9. Java线上问题排查思路及Linux常用问题分析命令学习

    前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问 ...

  10. linux常用60条命令 转

    Linux必学的60个命令   Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命 ...

随机推荐

  1. LeetCode-37.Sudok Solver

    Write a program to solve a Sudoku puzzle by filling the empty cells. A sudoku solution must satisfy  ...

  2. 限制SSH用户访问Linux中指定的目录

    限制SSH用户访问Linux中指定的目录 http://os.51cto.com/art/201703/534895.htm#topx http://www.cnblogs.com/lykyl/arc ...

  3. 使用SQL Server 的CDC功能实现数据变更捕获

    USE t; GO --开启某个数据库的CDC功能 exec sys.sp_cdc_enable_db GO --is_cdc_enabled栏位为1代表开启CDC功能了 SELECT is_cdc_ ...

  4. Redis基本管理

    Redis介绍 开源 内存存储 数据结构存储  1.字符串(数字)    2.列表    3.hash    4.set 集合   5.sorted set 有序集合 用途 :数据库  缓存  消息队 ...

  5. 【LDA】周志华

    一.书籍

  6. cordava打包vue项目成app

    注意:安装目录不要以中文命名 1.安装cordova :npm install -g cordova 2.安装java jdk :配置环境变量: 1.系统变量:名:JAVA_HOME    值:C:\ ...

  7. mybatis oracle 插入自增记录 获取主键值 写回map参数

    网上搜了好多文章照着弄都返回不了主键给map, 实践证明要在传入的map参数里写回插入的主键,要这样写 <selectKey resultType="java.lang.Integer ...

  8. Windows Server 2008服务器上测试几个站点,改完host居然没有生效

    Windows Server 2008服务器上测试几个站点,改完host居然没有生效看了下资料,估计是因为Dnscache这个服务引起的(DNS Client)于是从服务了把他禁用掉,果然host生效 ...

  9. CentOS 7 时间, 日期设置 (含时间同步)

    from http://blog.itnmg.net/centos-7-time-date/ yum install ntp //安装ntp服务systemctl enable ntpd //开机启动 ...

  10. JS基础篇-- body.scrollTop与documentElement.scrollTop

    获取当前页面滚动条纵坐标的位置:document.body.scrollTop与document.documentElement.scrollTop 获取当前页面滚动条横坐标的位置:document. ...