linux cp命令_linux中cp命令的用法

更新时间:2020-11-07    来源:linux    手机版     字体:

【www.bbyears.com--linux】


cp复制

cp 源文件路径 目录文件路径
[root@zabbix_agentd ~]# cp ./1.sh /tmp/
[root@zabbix_agentd ~]# cp ./1.sh /tmp/2.sh

如上所示,第一次cp ./1.sh /tmp/ ,将当前目录下1.sh复制到tmp下仍然叫做1.sh,
第二次cp ./1.sh /tmp/2.sh ,将当前目录下1.sh复制到tmp下重命名为2.sh
查看;
[root@zabbix_agentd ~]# cat /tmp/{1.sh,2.sh}
accepted conn: 40730031
accepted conn: 40730031
[root@zabbix_agentd ~]#

如果目录文件存在,会提示是否覆盖
如果目标文件不存在则创建新文件
如果目录存在,且是目录:则复制至目标目录,并保持原名

当然,源文件也可以出现多个,如果源是多个,目标必须是目录
[root@zabbix_agentd ~]# cp 1.sh 1.txt anaconda-ks.cfg /tmp/
cp: overwrite ‘/tmp/1.sh’? y
[root@zabbix_agentd ~]#

cp复制目录-r 若目标文件存在则会报错
[root@zabbix_agentd ~]# cp -r /etc/zabbix /tmp/zabbix123
[root@zabbix_agentd ~]# ll /tmp/zabbix123
total 16
drwxr-xr-x. 2 root root 4096 Jul 9 20:36 scripts
-rw-r--r--. 1 root root 11145 Jul 9 20:36 zabbix_agentd.conf
drwxr-xr-x. 2 root root 37 Jul 9 20:36 zabbix_agentd.d
[root@zabbix_agentd ~]#

*为bash中的多通配符
?为单个通配符
[]匹配知道字符范围内的任意单个字符
如果只复制文件到目录则可以如下,

[root@zabbix_agentd ~]# cp -r /etc/zabbix/* /tmp/zabbix123/scripts/

常用
[[:upper:]]所有大写字母,相当于A-Z
[[:lower:]]所有小写
[[:alpha:]]小写大写都算
[[:digit:]]0-9所有数字
[[:alnum:]]数字字母都包含
[[:space:]]空白字符
[[:punct:]]标点符号
*为bash中的多通配符
?为单个通配符
[]匹配知道字符范围内的任意单个字符

匹配指定字符范围外的任意单个字符[^]
[^0-9],不匹配数字,非数字以外的字符

示例:
复制以a开头,中间有2个任意字符,并且以w结尾的文件
cp -r a??w
复制以a开头,中间任意字符,以w结尾
cp -r aw
复制任意一个数字开头,以非数字结尾
cp -r [0-9][^0-9]
复制以非字母开头,后有一个字符和任何长度的字符
cp -r [^[:alpha:]][[:alpha:]]*

cp常用选项:
-r:递归
-i:交互
-d:复制链接文件本身,而非指向的源文件
-a:保持所有属性,相当于-dr
-p:保留用户权限。只有管理员能够保留权限
-f:强制覆盖

本文来源:http://www.bbyears.com/caozuoxitong/109341.html