删除符号链接 - 逻辑以及如何

删除符号链接 - 逻辑以及如何

首先祝大家新年快乐!我对 UNIX\Linux 非常陌生,并且错误地创建了以下符号链接:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-enabled/phpmyadmin.confservice

正确的方法是什么删除它及其背后的逻辑是什么?:

我知道我应该unlink ***something***在文件夹内执行命令/etc/apache2/conf-enabled/,然后导航到它......因此我问:

  1. 为什么删除操作是基于第二条路径而不是在第一个路径中完成......?

  2. 一般情况下,除了文件名之外,还需要写什么吗?

    • 我害怕造成伤害,所以我问这个......

答案1

man rm

rm 实用程序删除符号链接,而不是链接引用的文件。

所以就这样做吧rm /etc/apache2/conf-enabled/phpmyadmin.confservice

在提出问题之前,您应该学习使用man任何实用程序,就像一般建议一样。这会节省你的时间,而且你会学到很多东西。

我害怕造成伤害,所以我问这个......

我绝对理解这种感觉,当我做一些不太理解的新事情时也是如此!解决方案是制作一些可以使用的测试文件。事实上,某些命令甚至有一个“空运行”选项,使它们向您显示它们将执行哪些步骤,而无需实际执行它们。

一般情况下,除了文件名之外,还需要写什么吗?

写在哪里---在符号链接中?符号链接实际上只包含它所指向的文件的路径(以文本格式)。您可以通过执行以下操作来打印符号链接的内容readlink my_link

答案2

符号链接通常创建为(从页面man):

ln -s target link_name

这里,target是一个已经存在的实体(例如文件或目录);link_name是目标文件的(符号)链接(指针或快捷方式,如果你可以这么说的话)的名称。

在你的例子中,/etc/phpmyadmin/apache.conf目标是——看起来像是 PHP 的一些配置文件。而 是/etc/apache2/conf-enabled/phpmyadmin.confservice您正在创建的符号链接。

说到删除问题,通常会删除link_name提供给 的第二条路径ln,但不会删除target.这样做会保留原来链接的文件;它只是“取消链接”创建的新名称。在您的情况下,删除/etc/apache2/conf-enabled/phpmyadmin.confservice将保留原始配置文件/etc/phpmyadmin/apache.conf。如果需要,您可以创建另一个指向相关目标的符号链接。

最后,如果在创建符号链接后删除target,则会形成“损坏的链接”。如果这样做ls -l,符号链接将以红色突出显示。请注意,删除符号链接的目标与禁止的操作完全不同——它只是不是典型的用例。

答案3

如果您想要详细信息,请点击评论中的链接,但对您的问题的简单回答是,符号链接就像其他内容的快捷方式。 (第二条路是这里的符号链接)

所以如果你删除快捷方式,它不会对原来的东西造成任何损害

您可以为快捷方式命名任何您想要的名称。

相关内容