파일이 디렉토리를 가리키는 심볼릭 링크인지 쉘 스크립트에서 감지하려고합니다. 이것이 내가하고있는 일입니다.
if [[ -L "$out_dir" && -d "$out_dir" ]]
then
echo "Dir is a symlink"
else
echo "Dir is not a symlink"
fi
그러나 이것은 실패합니다. 몇 가지 실험 :
bash-3.2 $ ls -ail .. 총 16 8004466 drwxr-xr-x 10 사용자 이름 1177235957340 Jul 18 15:41 ./ 1020189 drwxr-xr-x 10 사용자 이름 1177235957340 Jul 18 15:16 ../ 8004467 drwxr-xr-x 12 사용자 이름 1177235957408 Jul 18 15:16 .git / 8004528 -rw-r--r-- 1 사용자 이름 1177235957 501 Jul 18 15:16 .gitignore 8004919 lrwxr-xr-x 1 사용자 이름 1177235957 22 Jul 18 15:41 종속성-> ../../lmi/Dependencies
그래서 ../Dependencies
, LS에 따르면, 심볼릭 링크는 그러나,이다 :
bash-3.2 $ test -L ../ 종속성 bash-3.2 $ echo $? 0 bash-3.2 $ test -h ../ 종속성 bash-3.2 $ echo $? 0
둘 다 1을 반환하면 안됩니까? 이것이 어떻게 작동 해야하는지에 대해 오해하고 있습니까? 파일이 디렉토리를 가리키는 심볼릭 링크인지 감지하는 목표를 어떻게 달성 할 수 있습니까?