심볼릭 링크 파일 대상 디렉터리로 이동

심볼릭 링크 파일 대상 디렉터리로 이동

심볼릭 링크의 대상 파일이 포함된 디렉터리로 이동하는 명령(또는 별칭)을 어떻게 만들 수 있습니까? 예를 들어 심볼릭 링크가 있는 경우

symFile@ -> /Users/zhermes/some/dir/someFile

나는 달리고 싶고 <command> symFile그것을 가지고 cd싶다./Users/zhermes/some/dir/

답변1

다음 함수는 심볼릭 링크가 존재하는지 확인하고 cd해당 상위 디렉터리에 연결합니다. 물론 일반 파일에서도 작동합니다. readlink또는 의 오류가 있으면 더 영리할 수 있지만 cd시작에 불과합니다.

GNU/리눅스:

GNU/Linux에서는 다음을 사용할 수 있습니다 readlink -f.

cdln() { [[ -f $1 ]] && cd "$(dirname "$(readlink -f "$1")")" || echo "No such file: $1" }

BSD / OS X:

-f다음은 옵션이 없는 Unix/OS X에서 작동합니다 readlink. 물론 이는 중첩된 심볼릭 링크를 따르지 않음을 의미합니다.

cdln() { [[ -f $1 ]] && cd "$(dirname "$(readlink "$1")")" || echo "No such file: $1" }

OS X에서는 다음을 coreutils사용 하여 설치할 수 있습니다.홈브류대신 사용하세요 greadlink -f.

관련 정보