软链接测试,如何判断软链接有效(if [ -L /path/to/link ])如何判断软链接是否存在(if [ -e /path/to/link ])

文章讲述了如何使用shell脚本来判断软链接的存在性和有效性,并提供了一个示例脚本,该脚本检查软链接/usr/local/bin/node,如果存在且有效,询问用户是否删除。删除后,脚本会创建新的软链接。若链接无效或不存在,脚本将给出相应提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何判断软链接有效

如下,有软链接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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dontla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值