【发布时间】:2020-02-21 04:06:14
【问题描述】:
这个问题最好通过一个小例子来解释:
如下创建目录基础结构:
rm -rf /tmp/work
mkdir -p /tmp/work/a/b/c
cd /tmp/work
ln -s a/b/c s
mkdir t
tree
这会产生以下基础架构:
有一种非常简单的方法可以检查目录是否存在:
cd /tmp/work
if test -d s/../t; then echo EXISTS; else echo DOES NOT EXIST; fi
但是,“-d”测试似乎只检查物理路径(a/b/t);下面清楚地表明逻辑路径/目录确实存在:
cd s/../t
pwd
我希望通过一个简单的测试来检查这种情况... 检查 StackOverflow 中的类似问题,我还没有找到区分逻辑路径和物理路径的答案...
我做了一个蛮力(愚蠢的)尝试来获得更多的洞察力:
for o in -b -c -d -e -f -g -G -k -h -L -O -p -r -S -s -t -u -w -x; do
if test $o s/../t; then echo EXISTS; else echo DOES NOT EXIST; fi
done
正如预期的那样,所有的测试都显示失败......
【问题讨论】: