2010-06-13 4 views
1

나는 내 자신의 쉘 프로그램을 작성 중이다. 현재 chdir을 사용하여 cd 명령을 구현 중입니다. 내가 아래 옵션으로 CD를 구현하려는 :경로가 실제 또는 심볼릭 링크인지 확인하는 방법

  • -P 기호 링크
  • 을 수행하지 마십시오을
  • -L

가 주어진 경로가 쉘에 입력 심볼릭 링크 (기본값)에 따라, 어떻게 경로가 상징적 인 링크인지 또는 절대 경로인지를 프로 그램으로 파악하는 방법?

감사

+0

질문이 이상하게 제기 되었기 때문에 알 수 없음과 zed_0xff가 모두 정확합니다. 쉘 스크립트에서 쉘을 쓰는 경우'test' 명령 (a.k.a.'['')을 쓰면'stat()'를 사용합니다. – msw

답변

3

체크 아웃 lstat() 기능, 당신은 된 st_mode 필드에 S_ISLNK을 사용해야합니다.

+0

'S_IFLNK'이어야합니다. –

+1

'lstat()'을,'stat()'가 심볼릭 링크 – Hasturkun

+0

을 따라갈 것이라고 생각합니다. – Unknown

2
if [ -L /path/to/file ]; then 
    echo "is a symlink!" 
else 
    echo "not a symlink! maybe a directory or regular file, or does not exist" 
end 
관련 문제