我想删除损坏的链接,但在此之前我想确认目录中是否存在链接文件。我们来调用一下链接A
:
if [ -a A ] then
print 'ya A is ther'
fi
But if A
链接已损坏,那么我该如何检查?
find -L -type l
找到损坏的符号链接。首先确认该文件不是目录或目录的符号链接test -d
(如果是目录,find
会递归到它)。因此:
is_broken_symlink () {
case $1 in -*) set "./$1";; esac
! [ -d "$1" ] && [ -n "$(find -L "$1" -type l)" ]
}
如果调用之间的链接发生变化,这很容易出现竞争条件test
并致电find
。另一种方法是告诉find
不递归。
is_broken_symlink () {
case $1 in -*) set "./$1";; esac
[ -n "$(find -L "$1" -type l -print -o -prune)" ]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)