如何在Linux中删除(删除)符号链接
符号链接,也称为符号链接,是一种指向另一文件或目录的特殊类型的文件。 这有点像Windows中的快捷方式。 符号链接可以指向相同或不同文件系统或分区上的文件或目录。
在本指南中,我们将向您展示如何使用以下命令在Linux / UNIX系统中删除(删除)符号链接。 rm
, unlink
和 find
命令。
在你开始之前 #
要删除符号链接,您需要对包含符号链接的目录具有写权限。 否则,将出现“不允许操作”错误。
删除符号链接时,它指向的文件不受影响。
使用 ls -l
命令以检查给定文件是否为符号链接,并查找该符号链接指向的文件或目录。
ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7
第一个字符“ l”表示文件是符号链接。 “->”符号显示符号链接指向的文件。
删除带有的符号链接 rm
#
的 rm
该命令删除给定的文件和目录。
要删除符号链接,请调用 rm
命令,后跟符号链接名称作为参数:
rm symlink_name
成功后,命令以零退出,不显示任何输出。
用 rm
您可以一次删除多个符号链接。 为此,将符号链接的名称作为参数传递,并用空格分隔:
rm symlink1 symlink2
要在删除符号链接之前得到提示,请使用 -i
选项:
rm -i symlink_name
确认类型 y
然后按 Enter
。
rm: remove symbolic link 'symlink_name'?
如果符号链接指向目录,请不要附加 /
末尾有斜杠。 否则,您将得到一个错误:
rm symlink_to_dir/
rm: cannot remove 'symlink_to_dir/': Is a directory
如果参数的名称以 /
, rm
该命令假定该文件是目录。 发生错误的原因是,当不使用 -d
要么 -r
选项, rm
无法删除目录。
为了安全起见,永远不要 -r
使用删除符号链接时的选项 rm
。 例如,如果您键入:
rm -f symlink_to_dir/
目标目录的内容将被删除。
删除带有的符号链接 unlink
#
的 unlink
命令删除给定的文件。 不像 rm
, unlink
仅接受一个参数。
要删除符号链接,请运行 unlink
命令,后跟符号链接名称作为参数:
unlink symlink_name
如果命令成功执行,则不显示任何输出。
不要附加 /
符号链接名称末尾的斜杠是因为 unlink
无法删除目录。
查找和删除断开的符号链接
如果您将源文件删除或移动到其他位置,则符号文件将悬垂(损坏)。
要查找给定目录下所有断开的符号链接,请运行以下命令:
find /path/to/directory -xtype l
/path/to/directory/symlink1
/path/to/directory/subdir/symlink2
该命令将列出目录及其子目录下的所有断开的链接。
如果要排除包含在子目录中的符号链接,请通过 -maxdepth 1
选择 find
:
find /path/to/directory -maxdepth 1 -xtype l
/path/to/directory/symlink1
找到损坏的符号链接后,您可以使用手动删除它们 rm
要么 unlink
或使用 -delete
的选项 find
命令:
find /path/to/directory -xtype l -delete
结论#
要删除符号链接,请使用 rm
要么 unlink
命令,后跟符号链接的名称作为参数。 删除指向目录的符号链接时,请勿在符号链接名称后添加斜杠。
如果您有任何疑问或反馈,请随时发表评论。
rm unlink查找终端