【问题标题】:How to copy in bash all directory and files recursive?如何在bash中递归复制所有目录和文件?
【发布时间】:2011-12-24 17:24:23
【问题描述】:

我有脚本:

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;

SourceDir 还包含子文件夹。

问题在于,DestFolder 不仅是所有树,而且在上一级所有其他级别和文件。

如何解决?

【问题讨论】:

  • 抱歉,忘记添加-name "*.txt"

标签: bash copy directory


【解决方案1】:
cp -r ./SourceFolder ./DestFolder

【讨论】:

  • 所以,澄清一下,大写 -R 选项将再次复制根目录;小 -r 选项保持根路径相同。
  • @AnneTheAgile - 根据我刚才的测试和手册页,-r 和 -R 没有区别。
  • @aaaaaa,你!你在哪个操作系统/版本上?后来我发现,bash 命令在不同操作系统之间似乎存在细微差别。
  • cp 不是 bash 命令,而是单独的可执行文件,因此它是特定于系统的。另一方面,真正的 bash 命令跨操作系统是相同的。
  • 我必须在源文件夹的末尾添加一个斜杠。不知道为什么。我也在使用构建变量。 cp -r "$CONFIG_PATH/" "$CODESIGNING_FOLDER_PATH"
【解决方案2】:

简单副本的代码。

cp -r ./SourceFolder ./DestFolder

复制成功的代码

cp -rv ./SourceFolder ./DestFolder

如果源代码包含任何只读文件,它也会复制的强制代码

cp -rf ./SourceFolder ./DestFolder

获取详细帮助

cp --help

【讨论】:

    【解决方案3】:

    您可能会发现设置属性很方便

    cp -arf ./SourceFolder ./DestFolder

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 2011-08-30
      • 2010-12-31
      相关资源
      最近更新 更多