cp命令——复制当前目录、复制文件夹

复制当前目录.

当前目录下既有文件夹也有文件:

  • ~/cptest这个文件夹已创建时,使用命令cp -r . ~/cptest/cp -r . ~/cptest会将当前目录下的所有文件夹和文件复制到~/cptest目录下。
  • ~/cptest这个文件夹还未被创建时,使用命令cp -r . ~/cptest/cp -r . ~/cptest会创建此目录,并将当前目录下的所有文件夹和文件复制到~/cptest目录下。

总结一下:

  • 当source是个.时,会认为dest必须是个文件夹。如果dest是个non-directory,那么就会报错cp: cannot overwrite non-directory ‘AAA’ with directory ‘BBB’
  • 不管dest目标文件夹是否创建,效果都是一样的(因为如果没有创建,就会创建后,再复制)。
  • 如果当前目录下有一个文件夹叫1.0(即ls能看到蓝色的1.0),想要复制1.0的当前目录,则使用cp -r 1.0/. ~/cptest
  • dest文件夹后面有没有/都是一样的,下面的命令分析也能看出。

复制所有*

当前目录下既有文件夹也有文件:

  • ~/cptest这个文件夹已创建时,使用cp -r * ~/cptest/,会把所有非隐藏文件和非隐藏文件夹复制过去(隐藏即是即.开头的)。这就是它和cp -r . ~/cptest/的区别。
  • ~/cptest这个文件夹还未被创建时,使用cp -r * ~/cptest/,会报错cp: target '/home/liu/cptest' is not a directory

总结一下:

  • 当source是个*时,会认为dest是个文件夹。
  • 复制*相比.限制更多:当dest文件夹已创建,则只能复制非隐藏的东西过去;当dest文件夹未创建时,则命令不成功。

复制某个文件夹

当前目录下有一个文件夹叫1.0(即ls能看到蓝色的1.0),想要复制1.0到某个地方:

  • ~/1.0这个文件夹已创建时,使用命令cp -r 1.0 ~/1.0/cp -r 1.0 ~/1.0,会将当前目录下的1.0文件夹复制到~/1.0文件夹下。即目录结构是~/1.0/1.0/something
  • ~/1.0这个文件夹还未被创建时,使用命令cp -r 1.0 ~/1.0/cp -r 1.0 ~/1.0,会将当前目录下的1.0文件夹复制到~文件夹下(或者理解为,先新建~/1.0文件夹,再把1.0里所有东西复制到~/1.0)。即目录结构是~/1.0/something(相当于先mkdir ~/1.0,再cp -r 1.0/. ~/1.0;注意是可以把1.0下的隐藏文件和隐藏文件夹都复制过去的)。这种情况下,使用cp -r 1.0 ~/2.0/也是一样,目录结构是~/2.0/something,相当于先改名,再复制。

总结一下:

  • 当source是个文件夹时,会认为dest也必须是个文件夹。如果dest是个non-directory,那么就会报错cp: cannot overwrite non-directory 'AAA' with directory 'BBB'
  • 当dest文件夹已经存在,那么会把source文件夹放到dest文件夹下。
  • 当dest文件夹不存在,那么新建dest文件夹,再把source文件夹下所有东西复制到dest文件夹下。
    `
  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值