linux cp命令使用

cp命令

cp命令用来将一个或多个源文件或者源目录复制到指定的文件或目录中。

语法

cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…

常用选项

-i:交互式
-r, -R: 递归复制目录及内部的所有内容;
-a: 归档,相当于-dR –preserv=all
-d:–no-dereference –preserv=links
–preserv[=ATTR_LIST]
-p: –preserv=mode,ownership,timestamp
-v: –verbose:显示拷贝时的详细信息
-f: –force:强制

示例

源是文件:
 * 目标不存在,则会新建目标文件,并将源内容填充至目标文件中

[root@ming ~]# touch a.txt
[root@ming ~]# cp a.txt cptest/b.txt
[root@ming ~]# ls cptest/
b.txt

 * 目标是已存在文件,会将源内容覆盖至目标文件中

[root@ming ~]# cp a.txt cptest/b.txt 
cp: overwrite ‘cptest/b.txt’? y

  这里为什么会提示覆盖呢?这是因为命令别名造成的,-i表示交互式,如果不想提示则目录起始点使用反斜杠

[root@ming ~]# alias 
alias cp='cp -i'
[root@ming ~]# \cp a.txt cptest/b.txt

 * 目标是目录,则会在目标目录下新建与源同名的文件,并将源的内容填充至新文件中

[root@ming ~]# touch c.txt
[root@ming ~]# cp c.txt cptest/
[root@ming ~]# ls cptest/
c.txt

 * 源是多个文件,则目标必须是目录且存在,其他情形均为出错

源是目录:需使用-r选项,表示递归
 * 目标不存在,则会创建指定目录,只能是单个源目录

[root@ming ~]# mkdir aa
[root@ming ~]# ll
total 4
drwxr-xr-x 2 root root 4096 Dec 27 13:44 aa
[root@ming ~]# cp -r aa ./bb    此目录下没有bb文件夹但是会创建
[root@ming ~]# ls
aa  bb
[root@ming ~]# cp -r aa bb ./cc    多个源目录时目标必须要存在,否则拷贝失败
cp: target ‘./cc’ is not a directory
[root@ming ~]# 

 * 目标存在且是文件则会报错,用脚想也知道不可能把目录下的所有东西放到一个文件中去
 * 目标存在且是目录,则会将源下所有文件和目录复制到目标中去

  • 15
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值