Linux删除符号链接(Softlink)

时间:2020-01-09 10:41:52  来源:igfitidea点击:

如何使用命令提示符删除Linux操作系统中的符号链接(软链接)?
如何在Linux中删除符号链接?
符号链接(也称为软链接或者符号链接)由一种特殊类型的文件组成,该文件用作对另一个文件或者目录的引用。
您可以使用以下任一命令在Linux操作系统中删除符号链接:

  • rm命令删除Linux中每个给定的文件,包括符号链接。
  • unlink命令在Linux中删除一个指定的文件名,包括符号链接。

让我们看一些有关在Linux中删除(删除)符号链接的示例。

Linux删除符号链接文件

使用以下语法:

rm linkname
unlink linkname

例子

首先,我们将使用ln命令在Linux中创建一个新的符号链接。
使用cd命令到/tmp /目录:

cd /tmp/
 
## create a new symbolic for demo purpose ##
ln -s /etc/resolv.conf dns
 
## List it ##
ls -l dns

输出示例:

lrwxrwxrwx 1 Hyman Hyman 16 2009-08-16 04:28 dns -> /etc/resolv.conf

现在,我们将使用rm命令或者unlink命令删除dns符号链接,如下所示:

rm dns
 
## 或者
 
unlink dns

使用ls命令验证它:

ls -l dns
ls -l /etc/resolv.conf

收到确认提示

我们可以通过将-i传递给rm来强制在每次删除符号链接之前进行提示:

rm -i {link-name}
rm -i -v test-link
rm: remove symbolic link 'test-link'? y
removed 'test-link'

删除符号链接目录

语法相同:

rm linkDirName
unlink linkDirName

请避免在" linkDirName"末尾追加" /"。
使用cd命令将其插入/tmp /:

cd /tmp/
 
## create a new symlink for demo purpose ##
ln -s /etc test
 
## List it ##
ls -ld test

输出示例:

lrwxrwxrwx 1 Hyman Hyman 4 2009-08-16 04:31 test -> /etc

现在,使用以下任一命令删除" test"符号链接目录:

rm test
 
## 或者
 
unlink test

确保使用ls命令删除符号链接:

ls -ld test
ls -ld /etc

使用find命令删除符号链接

这是我们可以使用查找来搜索并列出所有符号链接:

find {/path/to/dir} -type l -action
find {/path/to/dir} -type l -name 'files-regex-to-search' -action
find {/path/to/dir} -type l -iname 'Case-Insensitive-files-regex-to-search' -action
find {/path/to/dir} -lname 'files-regex-to-search'  -action

说出列出/tmp/bin /中的所有符号链接,运行:

find /tmp/bin/ -type l -print

仅列出* .txt或者* .sh符号链接,运行:

find /tmp/bin/ -type l -iname "*.sh" -print
find /tmp/bin/ -type l -iname "*.txt" -print
## modern syntax for GNU/find ##
find /tmp/bin/ -lname "*.txt" -print
find /tmp/bin/ -lname "*.db" -print
find /tmp/bin/ -lname "*.sh" -print

查找并删除所有符号链接

您所需要做的就是按如下所示将-print操作替换为-delete以删除所有* .sh符号链接:

find /tmp/bin/ -lname "*.sh" -delete

要获得确认,需要查找所有* .txt符号链接并将其删除时,请使用以下语法:

find /tmp/bin/ -type l -name "*.txt" -exec rm -i {} +
find /tmp/bin/ -type l -name "*.db" -exec rm -i {} +

查找命令选项其中:

  • -type l:仅查找符号链接
  • -lname" * .txt":文件是一个符号链接,其内容与shell模式匹配,例如* .txt。将-ilname" pattern"传递给不区分大小写的匹配项。该选项仅适用于最新版本的GNU/find。
  • -print:打印匹配的文件列表。
  • -delete:删除/删除匹配的符号链接。
  • -exec rm -i {} +:使用带有确认的rm命令删除/删除匹配的符号链接

Linux删除符号链接命令选项

执行以下命令:

rm --help
unlink --help