在 Linux 上,我创建了一个文件 (file1):
echo Hello file1 > file1
然后,我创建了一个到 file1 的符号链接 (file2):
ln -s file1 file2
之后,我删除了 file1:
rm file1
最后,我将 file2 编辑为不同的:
echo Changed file2 > file2
执行所有这些步骤后,我观察到 file1 和 file2 现在包含“Changed file2”。
据我了解,删除 file1 后,符号链接(file2)不再起作用。然而,我希望得到答案的有趣部分是,编辑 file2 会导致 file1 被恢复(尽管 file1 之前已被删除)。
非常感谢您的宝贵时间。
答案1
file1
您的进程实际上并未恢复第一个文件。相反,它是在您运行时创建的echo Changed file2 > file2
。file2
是一个指向当时不存在的文件的链接file1
;符号链接不必指向现有文件。因为它是一个符号链接,所以系统解析它并将命令的输出重定向echo
到file1
,创建该文件,并将file2
符号链接保留在指向 的位置file1
。