gpt4 book ai didi

linux - 如何递归地将目录复制到另一个目录并仅替换未更改的文件?

转载 作者:IT王子 更新时间:2023-10-29 00:19:30 26 4
gpt4 key购买 nike

我想在 Fedora 中制作一个特定的副本。

我有两个文件夹:

  • 'webroot':保存所有网络文件/图像等

  • 'export':包含从我的 SVN 存储库导出的数千个 PHP、CSS、JS 文档的文件夹。

导出目录包含许多与根目录相同的文件/文件夹,但是根目录包含在导出中找不到的其他文件/文件夹。

我想使用以下选项将导出的所有内容与我的 webroot 合并:

  1. 如果 export 的版本包含不同的代码,则覆盖 webroot 中的文件在 webroot 的版本中(实时)
  2. 如果文件被覆盖(导出版本替换实时版本)*注意我希望保留 webroots 权限/所有权,但导出内容
  3. 没有提示/停止复制任何类型的(即不冗长)
  4. 递归复制——显然我想复制所有*文件在中找到的文件夹和子文件夹导出

我对 cp 做了一些研究 - 这能完成这项工作吗?:

cp -pruf ./export /path/to/webroot

最佳答案

可能会,但是任何时候 exportwebroot 中的相应文件具有相同的内容但修改时间不同,您最终会执行不必​​要的复制操作。您可能会从 rsync 获得更智能的行为:

rsync -pr ./export /path/to/webroot

此外,rsync 可以通过 SSH 连接将文件从一台主机复制到另一台主机,如果您需要这样做的话。此外,它还有无数个选项,您可以指定这些选项来调整其行为 - 请查看手册页了解详细信息。

编辑:关于您对保留权限的含义的澄清:您可能希望取消 -p 选项。

关于linux - 如何递归地将目录复制到另一个目录并仅替换未更改的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/601247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com