Rsync 仅创建符号链接

13 浏览
0 Comments

Rsync 仅创建符号链接

我目前使用rsync非常顺利。它将我的所有文件从一个目录复制到另一个目录。唯一的问题是它会实际复制文件。\n我有很多大文件,我不想在所有文件上都有一个副本。我只想在新目录中创建一个符号链接,以便在网页上提供数据。源目录中有一些脚本和文件,我不希望公众看到。我正在将安全数据移动到Web根目录(目标)。\n我希望rsync能够在源目录中创建任何新文件的符号链接到目标目录。这样我就不会像现在这样占用硬盘空间了。我目前的方法很完美,只是缺少符号链接的部分。有没有办法让rsync跟踪并创建符号链接?\n

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

0
0 Comments

Rsync仅创建符号链接的问题出现的原因是,当使用lndir创建符号链接并且在源目录中移除文件时,这些文件会在目标目录中丢失。

解决方法是使用rsync命令的--link-dest选项,该选项可以在目标目录中创建指向源目录中已删除文件的硬链接。

以下是解决该问题的示例代码:

rsync -av --link-dest=/path/to/source /path/to/source /path/to/destination

在上述代码中,/path/to/source是源目录的路径,/path/to/destination是目标目录的路径。通过使用--link-dest选项,rsync命令将在目标目录中创建指向源目录中已删除文件的硬链接。

使用上述解决方法,您可以确保即使在源目录中删除文件,目标目录中的符号链接也不会丢失。

0
0 Comments

原因:rsync默认情况下使用硬链接(hard link)来创建文件副本,而不是符号链接(symbolic link)。硬链接在同一个文件系统内创建一个新的文件名,指向同一个文件。在上述条件下,这种行为与符号链接类似。

解决方法:使用rsync的--link-dest=DIR选项。该选项会创建一个硬链接副本,从而实现类似于符号链接的效果。需要注意的是:

  • 原文件和目标文件必须在同一个文件系统内
  • 不要计划删除原文件而保留副本(符号链接会中断,但硬链接不会)
  • 不要有任何明确检查是否为符号链接的操作
0
0 Comments

Rsync create symbolic links only的问题出现的原因是,用户希望在目标目录中创建源文件的符号链接而不是复制文件。为了解决这个问题,可以使用以下方法:

在Linux或FreeBSD系统中,可以使用cp -aR -s命令来创建源文件在目标目录中的符号链接,而不是复制文件。需要注意的是,-s选项是非标准的。

在Linux系统中,也可以使用cp --archive --recursive --symbolic-link命令来创建源文件在目标目录中的符号链接,而不是复制文件。

这些方法可以帮助用户在目标目录中创建源文件的符号链接,从而避免复制文件的操作。

0