在两个现有文件之间创建链接

在两个现有文件之间创建链接

例如:我有文件a.txt和文件b.txt。我想要一个从a.txt到 的链接b.txt。如果我打开/读取文件a.txt,文件b.txt应该打开/读取。如果我尝试类似的操作,ln -s a.txt b.txt则会收到错误,因为文件b.txt存在。如何创建从a.txt到 的链接b.txt

答案1

您需要b.txt先使用命令删除文件rm b.txt,然后使用命令创建符号链接ln -s a.txt b.txt

您可以使用硬链接 from b.txtto a.txt,然后执行ln a.txt b.txt,两者a.txt都会b.txt指向硬盘驱动器上的同一文件,并且删除a.txt不会删除可以读取的文件b.txt。使用符号链接从b.txt删除a.txt删除a.txt文件和b.txt符号链接将被破坏。有关硬链接的更多信息:https://en.wikipedia.org/wiki/Hard_link

答案2

请务必首先检查手册页以获取帮助。它会节省你很多时间。或者,如果您真的很忙,则ln --helpshell 会给出

Usage: ln [OPTION]... [-T] TARGET LINK_NAME   (1st form) ....

在帮助文本的下方,我们发现

...
-s, --symbolic  make symbolic links instead of hard links
-f, --force     remove existing destination files
...

my_secret.file从某种意义上说,这意味着,如果您想为名为as 的文件创建链接my_secret.link,您将发出如下命令

ln -sf my_secret.file my_secret.link

如果你ls -l my_secret.link在这里做一个。你会得到这样的东西

lrwxrwxrwx 1 foouser groupbar  7 Jul 13 17:17 my_secret.link -> my_secret.file

中的“l”lrwxrwxrwx告诉我们它是一个链接。

编辑:拉胡尔先发制人。

答案3

您可以使用-f选项,它会在创建链接之前删除现有的目标文件(如果有)。

ln -sf a.txt b.txt

在发现man ln

[OPTION] 
-f, --force
          remove existing destination files

相关内容