/bin/zsh과 /usr/bin/zsh의 차이
ZSH을 설치하면서 셸 변경을 할 때 이런 명령을 사용했다.
chsh -s /usr/bin/zsh
이유는
which zsh
명령으로 나오는 경로가 /usr/bin/zsh이기 때문이다.
그런데
which -a zsh
명령을 사용하면 경로가 두 개가 나온다.
/usr/bin/zsh /bin/zsh
과연 이 두 개는 어떤 차이가 있을까?
ls -l /usr/bin/zsh ls -l /bin/zsh
두 명령을 사용해보았다.
/usr/bin/zsh -> /etc/alternatives/zsh-usrbin /bin/zsh -> /etc/alternatives/zsh
모두 심볼릭 링크로 /etc/alternatives 디렉터리의 파일을 가리키고 있다.
또다시 두 파일을 알아보았다.
ls -l /etc/alternatives/zsh-usrbin ls -l /etc/alternatives/zsh
이 두 파일도 심볼릭 링크다. 그리고 두 개는 같은 파일을 가리키고 있다.
/etc/alternatives/zsh-usrbin -> /bin/zsh5 /etc/alternatives/zsh -> /bin/zsh5
그렇다면 숫자가 달린 이 파일이 본체일까?
ZSH은 현재 메이저 버전이 5이다.
ls -l /bin/zsh5
확인해보니 링크가 아니다. 찾았다.
따라서 셸 스크립트를 작성할 때 첫 줄에 다음 중 어느 경로를 사용해도 잘 작동하는 것을 알 수 있다.
#!/usr/bin/zsh #!/bin/zsh #!/etc/alternatives/zsh-usrbin #!/etc/alternatives/zsh #!/bin/zsh5