使用一个命令删除文件的所有符号链接

使用一个命令删除文件的所有符号链接

我想删除文件的所有符号链接。我有一个目录结构,其中/usr/local/instantclient/11.2.0.3包含许多文件,并且我有这些文件的符号链接/usr/local/lib/。现在我想删除这些文件的所有符号链接。我怎样才能在一个命令中完成此操作。如果我删除包含文件的实际目录,/usr/local/instantclient/11.2.0.3那么它将保留断开的链接/usr/local/lib

答案1

要删除链接(从man find下方-type):

          l      symbolic link; this is never true if the -L option or the
                 -follow option is in effect, unless the symbolic link  is
                 broken.  If you want to search for symbolic links when -L
                 is in effect, use -xtype.

我认为这应该可以解决问题:

find /usr/local/lib/ -maxdepth 1 -follow  -type l

输出是否生成了要删除的文件列表?如果是,当您 100% 确定时:

find /usr/local/lib/ -maxdepth 1 -follow  -type l -delete

这将仅删除损坏的链接。要删除全部链接,删除该-follow节,但我不会在下这样做/usr/local/lib

答案2

在 Linux 上,这样做就可以了。修改级别深度以适合您:

查找 /home/cc-000000025-com/domains -maxdepth 3 -type l -exec rm {} ;

相关内容