文章目录

版权声明:本文为CSDN博主「anlian523」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/anlian523/article/details/98876898

复制当前目录 .

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

  • ~/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文件夹下。

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐