如何在Linux中删除Linux中的符号链接
符号链接或者软链接就像指向另一个文件的指针。
请注意,硬盘上只有一个实际文件的副本,以这种方式,我们可以通过简单地创建与它的链接来节省有价值的硬盘空间。
删除符号链接与删除真实文件或者目录相同。
符号链接是指文件名称的链接。
它最重要的优势是它可以用来引用任何地方的文件,即使在世界另一边的计算机上也是如此。
符号链接仍然会起作用。
然而,最大的缺点是符号链接自然依赖于原始文件。
有一些符号链接的属性
- 链接具有不同的inode号码:每个Linux文件或者目录(从技术角度来看,它们之间没有实际差异)具有inode,此inode包含所有文件的元数据(即,读取所需的所有管理数据文件存储在其inode中)
ls -l
命令显示所有与第二列值1
和链接指向原始文件的链接。- 链接包含原始文件的路径,而不是内容。
- 删除软链接不会影响任何内容,但在删除原始文件时,链接将成为指向不存在文件的悬空链接。
rm和删除命令以删除符号链接
可以使用两个命令删除符号链接:RM并取消链接。
我们可以使用以下命令中的任何一个来删除符号链接。
- RM:是终端命令,用于删除每个给定文件,包括符号链接。由于符号链接被视为Linux上的文件,因此可以使用RM命令删除它。
# rm linkfile
- 取消链接:删除单个指定的文件名,包括符号链接。
# unlink linkfile
要删除符号链接文件,我们应该将其列出如下所示的ls -l
命令
# ls -l pac lrwxrwxrwx 1 root root 9 Jan 18 01:57 pac -> /root/pac
pac - >/root/pac
显示了原始文件的路径,它是"/root/pac""和"第二列上的"1"值"表示该文件是符号链接文件。
Warning: The command rm and unlink delete files so should be used carefully, make sure you have a proper backup before proceeding.
删除符号链接文件 - 示例
要查看我们如何删除符号链接文件,我们将首先在下面创建一个软链接a
# ln -s /root/script /home/papso
要列出软链接的外观:
# ls -l script lrwxrwxrwx 1 root root 12 Jan 18 02:32 script -> /root/script
要删除符号链接,可以使用其相对或者绝对路径,但要限制错误,我建议我们使用相对路径。
我们有绝对的道路
# rm /home/papso/script
或者你可以做
# unlink /home/papso/script
我们可以查看以下
# ls -l /home/papso/script ls: cannot access script: No such file or directory
使用相对路径,我们首先需要移动到符号链接文件目录
# cd /home/papso
现在,我们可以使用上面的一个命令
# unlink script
并检查
# ls -l script ls: cannot access script: No such file or directory
使用unlink命令时要小心,因为它可以删除常规文件。
如果编写现有的常规文件名而不是符号链接文件名,则将删除常规文件。
见下文
# ls -l file1 -rw-r--r-- 1 root root 0 Jan 18 02:51 file1
我们可以看到File1不是符号链接。
现在我们将使用unlink命令,我们将看到结果。
# unlink file1
# ls -l file1 ls: cannot access file1: No such file or directory
我们看到文件1不存在。
它已被删除
删除符号链接目录 - 示例
要删除符号链接目录,我们将使用与上述相同的过程。
我们将创建一个软链接:
# ls -ld pac drwxr-xr-x 2 root root 4096 Apr 6 22:54 pac
PAC是将用于测试的文件夹。
# ln -s /root/pac /home/papso/test
查看
# ls -l /home/papso/test/pac lrwxrwxrwx 1 root root 9 Jan 18 03:00 /home/papso/test/pac -> /root/pac
现在要删除测试符号链接目录,我们将使用相对路径。
我们已经搬到了/home/papso/test
文件夹
# rm pac
或者
# unlink pac
我们现在将使用绝对路径检查
# ls -l /home/papso/test/pac ls: cannot access /home/papso/test/pac: No such file or directory
Unlink命令和没有-r
选项的RM命令不会删除常规目录。
两个命令从目录中删除符号链接,因为它被视为文件所以,何时使用rm或者unlink命令从目录中删除符号链接时,请确保不使用/
字符结束目标,因为这将是创建错误。
见下文
$mkdir dirfoo $ln -s dirfoo lnfoo
让我们检查
# ls -l lnfoo lrwxrwxrwx 1 root root 6 Jan 18 03:16 lnfoo -> dirfoo
现在让我们尝试删除符号链接
# rm lnfoo/ rm cannot remove directory ‘lnfoo/’ : Is a directory
因为/
最后表示目录,所以命令不起作用
# unlink lnfoo/ unlink: cannot unlink ‘lnfoo/’: Not a directory
现在让我们尝试没有文件名结束时的'/`字符
# unlink lnfoo
现在让我们检查文件存在
# ls -l lnfoo ls: cannot access lnfoo: No such file or directory
我们可以看到符号链接已被删除