8

我目前的 rsync 运行良好。它将我的所有文件从一个目录复制到另一个目录。唯一的事情是物理复制文件。

我有很多大文件,我不想复制所有文件。我只想在新目录中创建一个符号链接,以便我可以在网页上提供数据。源目录有一些我不希望公众看到的脚本和文件。我正在将安全数据移动到 Web 根目录(目的地)。

我希望 rsync 做的是源目录中的任何新文件都会创建到目标的链接。这样我就不会像现在这样用尽我的硬盘空间。除了对它进行符号链接方面外,我所拥有的一切都很完美。有没有办法让 rsync 跟踪并创建符号链接?

rsync -aP --exclude="file.sql" --exclude="*~" --exclude=".*" --exclude="*.sh" . ${destination}
4

4 回答 4

1

它不是符号链接,但您可以使用--link-dest=DIR. 它创建一个硬链接,该链接将为同一文件创建一个新名称。只要满足以下条件,这将类似于软链接:

  • 两个文件都在同一个文件系统上
  • 您不打算删除原件而不是副本(符号链接会损坏,但硬链接不会)
  • 您没有任何明确的检查以查看它是否是软链接
于 2019-07-02T21:50:57.100 回答
0

lndir 对你有用吗?根据手册,它创建一个符号链接到另一个目录树的影子目录。

于 2012-08-10T10:24:30.183 回答
0

我认为master_delivery这可能是最好的工具。使用已经引入--link-dest的 选项rsync,将复制不相同的文件。如果您不介意副本和硬链接混合的情况,您可以使用rsync,但如果您想完全消除重复,请使用master_delivery.

用法是:

gem install master_delivery
master_delivery -m <path_to_master> -d <path_to_delivery_root>
于 2020-05-08T03:12:32.830 回答
0

您可以使用cp -aR -s(Linux 或 FreeBSD)或cp --archive --recursive --symbolic-link(Linux)在目标目录中创建指向源文件的符号链接,而不是副本。请注意,这-s是非标准的。

于 2021-04-03T08:49:57.497 回答