我正在尝试删除在终端上出现的错误(它让我很烦恼,因为它不是我需要担心的错误)。
我有以下代码来检查符号链接是否损坏,如果链接被破坏,它将删除链接:
find /usr/lib/libdb.so -xtype l -delete
如何将其更改为iIF语句?
if [ broken link ] then;
delete file
else
do nothing
fi
有人能为我解释这个吗?
答案 0 :(得分:2)
您可以使用此查找:
find /usr/lib/libdb.so -type l -not -exec test -e '{}' \; -print -delete
-not -test -e
将仅检测损坏的文件(链接)并在打印后将其删除。
答案 1 :(得分:1)
未经测试但试一试
FILES=`find /usr/lib/libdb.so | grep -v '\.disabled$' | sort`
for F in $FILES; do
if [ -L $F ]; then
if readlink -q $F >/dev/null ; then
delete file
else
DO NOTHING
fi
fi
done
答案 2 :(得分:1)
要按照您的方法操作,您可以尝试以下命令:
if [ "`find /usr/lib/libdb.so -type l -xtype l`" != "" ]; then
echo delete file
else
echo do nothing
fi
或更简洁:
find /usr/lib/libdb.so -type l -xtype l -print -delete