文章目录
如何判断软链接有效
如下,有软链接l
:
脚本.sh
内容为:
#!/bin/bash
# if [ -L /path/to/link ]; then
if [ -L /path/to/link ]; then
echo "The symlink is valid."
else
echo "The symlink is invalid."
fi
该脚本用于判断软链接是否有效
如图,我们执行脚本,提示软链接l
有效,然后我们把被链接文件改个名,软链接由蓝变红,意味着失效了,然后我们执行脚本,提示软链接l
失效了
然后我们继续,将软链接ll
改个名,执行脚本,发现也能提示软链接无效(就是说用这个无法检测软链接是否存在)
如何判断软链接是否存在
if [ -e $NODE_LINK ]; then
echo "The symlink $NODE_LINK exist."
else
echo "The symlink $NODE_LINK does not exist."
fi
示例:写一个shell脚本,判断软链接/usr/local/bin/node
是否存在,如果存在,判断软链接是否有效,如果有效,询问用户是否删除,如果用户选择是,则删除此软链接。然后创建软链接,如果之前用户选择不删除已存在有效的软链接,则不创建
#!/bin/bash
# 判断软链接/usr/local/bin/node是否存在,如果存在,判断软链接是否有效,如果有效,询问用户是否删除,如果用户选择是,则删除此软链接
NODE_LINK="/usr/local/bin/node"
ls -l --color=auto $NODE_LINK
if [ -e $NODE_LINK ]; then
if [ -L $NODE_LINK ]; then
echo "The symlink $NODE_LINK is valid."
read -p "Do you want to delete and relink it? (y/n) " choice
case "$choice" in
y | Y)
rm $NODE_LINK
echo "The symlink $NODE_LINK has been deleted."
;;
*)
exit 0
;;
esac
else
echo "The symlink $NODE_LINK is invalid."
fi
else
echo "The symlink $NODE_LINK does not exist."
fi
echo "Force create soft link: $NODE"
ln -sf $NODE $NODE_LINK
if [ $? -ne 0 ]; then
echo "Force create soft link: $NODE failed"
exit 1
fi
ls -l --color=auto $NODE_LINK