如何使两个目录相同?

如何使两个目录相同?

我的主目录中像往常一样有一个 Documents 文件。现在,我在 Dropbox 文件夹中创建了一个名为 Documents 的新目录。现在有什么方法可以使这两个目录相同吗?也就是说,如果我更新其中任何一个,它们都会被更新。我认为这可能是通过符号链接完成的,但我不清楚符号链接的概念以及它的作用。

答案1

只需使用符号链接:

ln -s ~/Documents ~/Dropbox/

这将在您的$HOME/Dropbox目录中创建一个目录,该目录实际上是指向的链接~/Documents。这意味着您对 所做的任何更改~/Documents也将在 中可见,~/Dropbox/Documents因为后者只是前者的链接。

符号链接是简单的技巧。您可以将符号链接视为链接目标的虚拟副本。对链接执行的任何操作实际上都会应用于目标。两者是彼此的精确副本。删除链接不会以任何方式影响目标。为了说明这一点,这里有一个简单的例子:

$ mkdir foo
$ touch foo/file1
$ tree
.
└── foo
    └── file1

1 directory, 1 file

因此,我们有一个名为的目录foo,其中包含一个名为的文件file。现在,如果我们创建指向的链接会发生什么foo

$ ln -s foo bar
$ tree
.
├── bar -> foo
└── foo
    └── file1

2 directories, 1 file

好的,我们来看看内容bar

$ ls bar
file1

如果我们删除该文件会怎么样?

$ rm foo/file1
$ ls bar
$

bar目录现在是空的,因为它只是一个符号链接,foo因此删除foo/file1也会删除bar/file1 因为这两个是同一个文件

相反,删除链接本身不会对原始链接产生任何影响,因为链接只是一个链接。

答案2

类似问题:检查这个 在 Ubuntu 中自动镜像目录

您正在尝试做的是 RAID 和其他东西所做的,如果您阅读它们,那会很棒,也许它会为您提供更好的解决方案。为同一驱动器中的另一个文件夹创建备份并不是很好。

答案3

我建议使用rysnc命令:

同步(代表远程同步)是用于 Unix 系统之间传输数据的开源工具。

同步同步目录——通过根据指定的标准(文件大小、创建/修改日期或校验和)进行比较,使一个目录看起来(包含相同的文件和子目录)与另一个目录完全一样。

如何使用同步

sudo rsync -az /pathof folder A /pathof folder B

sudo rsync -az /pathof folder B /pathof folder A

-a archive mode (implies recursive, copy symlinks as symlinks, preserve owner, modification times, group, owner, special and device files)

-z compresses the data

我也建议使用手表命令将每隔一段时间重复 rsync ,或者使用 cron 。

有关 watch 命令的更多信息:这里

参考 :这里

相关内容