如何在bash中递归复制所有目录和文件?
Posted
技术标签:
【中文标题】如何在bash中递归复制所有目录和文件?【英文标题】:How to copy in bash all directory and files recursive? 【发布时间】:2011-12-24 17:24:23 【问题描述】:我有脚本:
find ./SourceFolder/ -maxdepth 4 -exec cp -R '' ./DestFolder/ \;
SourceDir
还包含子文件夹。
问题在于,DestFolder
不仅是所有树,而且在上一级所有其他级别和文件。
如何解决?
【问题讨论】:
抱歉,忘记添加-name "*.txt" 【参考方案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
【讨论】:
以上是关于如何在bash中递归复制所有目录和文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 yml 文件中的 bash 命令将所有文件复制到新目录?
在linux shell(bash)编程中,如何通过递归方式遍历文件