gpt4 book ai didi

linux - 如何检查 shell 脚本中的两个变量是否指向同一个文件夹?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:07 25 4
gpt4 key购买 nike

如何判断一个shell脚本中的两个变量是否指向同一个文件夹?

不能仅通过比较这些变量来检查:

d1=/home/
d2=/home/user/../

if [ "$d1" == "$d2" ]
then
echo true
else
echo false
fi

... outputs false

让我们假设:d1d2 都是文件系统上的目录路径,并且指向同一个目录。然而,它们的写法不同,如 /home//home/user/../。因此,简单检查相等字符串在这里不起作用。


受问题启发:

  1. A reliable way to check if two variables in a cmd shell point to the same folder

在答案中:

for %%A in ("%d1%") do for %%B in ("%d2%") do if "%%~fA"=="%%~fB" (echo true) else (echo false)

最佳答案

var1="/home/ps/temp/.."
var2="/home/ps/"


if [ "$(readlink -f "$var1")" == "$(readlink -f "$var2")" ];then
echo "they are pointing to same directory...."

else

echo "NOOOOO they are different"

fi

来自 man readlink :

-f, --canonicalize

canonicalize by following every symlink in every component of the given name recursively; all but the last component must exist

关于linux - 如何检查 shell 脚本中的两个变量是否指向同一个文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42105743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com