linux学习之路:cp命令


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

1、命令格式

  cp 【选项】 【源】【目录】

 或cp -t 【目录】 【源】

2、命令参数

  使用帮助命令:man cp或cp -help

-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  复制目录及目录内的所有项目

3、命令功能

  复制文件或者目录。

4、命令范列

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

  命令:cp data test 

[root@CentOS-study ~]# ls
anaconda-ks.cfg  data  install.log  install.log.syslog  test
[root@CentOS-study ~]# cp data test
[root@CentOS-study ~]# cd test
[root@CentOS-study test]# ls
data 

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

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

  命令:cp data test

[root@CentOS-study ~]# ll
total 68
-rw-------. 1 root root  1105 Oct 19 19:13 anaconda-ks.cfg
-rw-r--r--  1 root root 23614 Nov 18 02:19 data
-rw-r--r--. 1 root root 23614 Oct 19 19:13 install.log
-rw-r--r--. 1 root root  6240 Oct 19 19:11 install.log.syslog
drwxr-xr-x  2 root root  4096 Nov 18 02:21 test
[root@CentOS-study ~]# cp data test
cp: overwrite `test/data'? y
[root@CentOS-study ~]# ll
total 68
-rw-------. 1 root root  1105 Oct 19 19:13 anaconda-ks.cfg
-rw-r--r--  1 root root 23614 Nov 18 02:19 data
-rw-r--r--. 1 root root 23614 Oct 19 19:13 install.log
-rw-r--r--. 1 root root  6240 Oct 19 19:11 install.log.syslog
drwxr-xr-x  2 root root  4096 Nov 18 02:21 test
[root@CentOS-study ~]# cd test
[root@CentOS-study test]# ll
total 24
-rw-r--r-- 1 root root 23614 Nov 18 02:28 data
  说明:目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM