cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。
cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。
语法
cp [options] source dest
或者
cp [options] source... directory
参数说明:
-a 或 --archive 此参数的效果和同时指定"-dpR"参数相同-b 或 --backup 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在-i 或 --interactive 覆盖文件之前先询问用户-l 或 --link 对源文件建立硬链接,而非复制文件-p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间-P 或 --parents 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理-s 或 --symbolic-link 对源文件建立符号链接,而非复制文件-S <备份字尾字符串> 或 --suffix=<备份字尾字符串> 用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"-v 或 --verbose 显示执行过程-x 或 --one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件--help 显示在线帮助--sparse=<使用时机> 设置保存希疏文件的时机--version 显示版本
参考实例
复制目录:
[root@test ~]# cp -R dir1 dir2/
将文件file1改名为file2:
[root@test ~]# cp -f file1 file2
将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式
cp -f file1 file2
同时将文件file1、file2、file3与目录dir1复制到dir2
cp -R file1 file2 file3 dir1 dir2
复制时产生备份文件,尾标 ~1~格式
cp -b -V t test.txt /tmp
复制时保留文件属性
cp -p a.txt tmp/
指定备份文件尾标
cp -b -S _bak a.txt /tmp
cp命令整体来说 比较简单,日常用的比较多,大家多做做练习就可以了。
文章转载自王佐的运维笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




