我的主目录中像往常一样有一个 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 命令的更多信息:这里
参考 :这里