Raz*_*ail 4 linux hardlink links
首先,我知道您无法创建文件夹的硬链接。
我想知道是否有任何命令(linux)可以自动(递归地)在目的地创建后续文件夹树,然后自动将所有文件从源硬链接到目的地。
绑定安装是更好的解决方案吗?它完全符合您的要求,即让两个不同路径上的所有文件递归地相同。
此命令使/other
内容与现有挂载或目录相同/original
:
mount --bind /original /other
Run Code Online (Sandbox Code Playgroud)
/original
您在其中一个或中所做的任何更改/other
都会立即显示在另一个中,因为这两个路径现在指向同一安装。
我不确定“然后自动将所有文件从源硬链接到目标”是什么意思。而且你明确想要递归。
\n如果您希望这两个位置保持“同步”,因此应同时在两个位置中观察到删除或创建文件,那么绑定安装(另一个答案)就很好。请注意,该解决方案不会在文件系统中留下任何痕迹。如果您创建硬链接,它将在文件系统中创建。移动磁盘并将文件系统挂载到另一个操作系统中,硬链接仍然存在。重新启动,硬链接仍然存在。绑定安装位于操作系统级别。在移动和挂载磁盘后,您不仅需要单独命令其他操作系统进行绑定挂载。如果您不移动磁盘,您仍然需要告诉当前操作系统在重新启动后再次绑定挂载(如果您想要永久解决方案)。
\n目录的符号链接有点类似,它存在于文件系统中。
\nln -s /original /other\n
Run Code Online (Sandbox Code Playgroud)\n如果符号链接及其目标属于同一文件系统并且符号链接是相对的,那么即使文件系统安装在其他地方(不同的安装点,可能在不同的操作系统中),它也会工作。有一些原因导致符号链接可能不是您想要的(示例)。
\n注意绑定安装或符号链接并不是真正的递归。这是“连接”两条路径的单一行为。它对更深的路径没有任何作用。它们的(半)等价性是因为各个((((\xe2\x80\xa6)great-)great-)grand)父“目录”之间存在某种链接。
\n现在,如果“然后自动将所有文件从源硬链接到目标”的意思是“自动执行此操作一次”,那么您可以使用以下命令来执行此操作cp
:
cp -lR /original /other\n
Run Code Online (Sandbox Code Playgroud)\n(-l
尽管 POSIX 并不要求)。它就像cp -R
但带有硬链接。这确实是递归的。但这也是一次性的行动。目录子树是独立的,只有常规文件出现硬链接。文件创建或删除不会被镜像。破坏硬链接的操作将会破坏硬链接。
归档时间: |
|
查看次数: |
9441 次 |
最近记录: |