我想删除文件的所有符号链接。我有一个目录结构,其中/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 {} ;