【问题标题】:Mac bash copy all files of one dir to another dirMac bash 将一个目录的所有文件复制到另一个目录
【发布时间】:2020-12-08 20:01:05
【问题描述】:

我有一个文件夹,其中包含两个目录:buildcopy-build

我需要通过 bash 将 copy-build 中的文件复制到 build 中。

如果这些文件已经存在,它必须覆盖它们。

我试过了:

 cp -r ./SourceFolder ./DestFolder

但是SourceFolder文件夹被复制到DestFolder,我需要将SourceFolder文件复制到DestFolder

你能帮帮我吗?

【问题讨论】:

  • man 是您在 shell 脚本方面最好的朋友。在终端上运行man cp
  • 最后看来我已经解决了。
  • 我一般更喜欢使用rsync而不是cp -R

标签: bash macos sh


【解决方案1】:

假设SourceDir中没有子目录,你应该试试

cp ./SourceFolder/* ./DestFolder

请参阅the manual 了解更多信息。

【讨论】:

  • 最后似乎我解决了它,我做了这样的事情:cp -R ./copy-build/。 ./构建
【解决方案2】:

使用-R 选项而不是-r,并在源目录的名称中明确包含/

cp -R ./SourceFolder/ ./DestFolder

来自-R选项的描述:

如果 source_file 以 / 结尾,目录的内容被复制而不是 目录本身。


来自man cp的兼容性部分:

cp 实用程序的历史版本有一个 -r 选项。这个实现 支持该选项;但是,强烈建议不要使用它,因为它 无法正确复制特殊文件、符号链接或 fifo。

【讨论】:

  • 我刚试过这个,它似乎工作:cp -r ./copy-build/。 ./build 你能告诉我有什么变化吗?
  • 所以建议使用 -R 而不是 -r,对吗?那么斜线之后的最后一点没用吗? ./SourceFolder/.
  • 是的,额外的斜线是使源中的每个文件都被复制到目标的原因,而不是源目录本身。
猜你喜欢
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 2013-06-01
  • 2020-06-22
  • 2014-08-12
  • 2013-10-24
  • 2011-10-24
相关资源
最近更新 更多