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