/ bin에서 기호 링크 작성이 작동하지 않습니다


8

Mac에서 Sublime Text에 대한 심볼릭 링크를 만드는 세 가지 방법을 시도했지만 매번 터미널을 다시 시작한 후에도 명령을 찾을 수 없다는 메시지가 계속 나타납니다. 요세미티 (OSX Yosemite, 10.10)와 함께 Mac을 사용하고 있습니다. sub명령으로 Sublime을 열 수 있도록 심볼릭 링크를 어떻게 만들 수 있습니까?

하나

ln -s 'Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl' /bin/sub

ln -s "Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl" /bin/sub

(따옴표 없음)

ln -s Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /bin/sub

링크가 실제로 / bin에 sub라는 것을 생성합니까? sudo를 사용해보십시오.
chris

1
따옴표를 사용하면 백 슬래시를 원하지 않습니다. 따옴표를 사용하지 않으면 백 슬래시가 필요합니다. 또한 /Applications/…답변에서 지적한대로 슬래시 on 이 필요하며 쓸 수있는 루트 권한이 필요합니다 /bin(따라서 sudo). 나머지 질문은 실행 파일을 그렇게 실행하기에 충분한 지 여부입니다. open "/Applications/Sublime\ Text.app"파일의 내용 과 비슷한 것을 수행하는 쉘 스크립트를 원하지 /bin않습니까?
Jonathan Leffler

답변:


16

당신은 당신의 응용 프로그램의 시작 부분에 '/'를 누락과 sudo같은 /bin소유하고 root당신은 실제로 일반 사용자로 쓸 수 없습니다. 현재 가지고있는 것처럼 현재 디렉토리가 시스템 루트 인 경우에만 작동합니다. 이것은 물론 Sublime Text 앱이 기본 Applications 폴더에 있다고 가정합니다.

이 시도…

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /bin/sub

하나 군더더기 :의 내용을 변경하는 나쁜 관행을 간주 /bin하고 /usr/bin모든 곧 OS X의 업그레이드 내용을 닦아 수 있기 때문에이. /usr/local/bin사용자가 제공 한 바이너리를 설치하는 일반적인 장소이므로

[[ -d /usr/local/bin ]] || sudo mkdir /usr/local/bin
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/sub

더 나은 옵션이 될 수 있습니다.

또는 (쉘 스크립트 내에서 Sublime Text를 실행할 필요가 없으므로) bash 별칭을 정의하십시오.

alias sub=/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl

bash 시작 파일에 추가하여 붙여 넣으십시오.

echo "alias sub=/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl" >> ~/.bashrc

3
당신은 사용해야 sudo하고 경로 이름을 인용하려는 경우 다음 공간을 탈출 백 슬래시는 사용할 수 없습니다!
user3439894

경로 주위에 작은 따옴표를 잊지 마십시오 : alias subl = '/ Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl'또한 ~ / .bash_profile에 넣는 것이 좋습니다.
drct

1

파티에 늦었다. Mac을 설정할 때 같은 문제가 발생하여 몇 가지를 시도했습니다. 여기 나를 위해 일한 것이 있습니다.

ln -sv "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

자세한 내용은이 github repo 로 이동하십시오 .


사용하지 않았기 때문에 명령이 실패한다는 사실 외에도이 sudo경우에는 mockman의 답변에서 이미 제공된 것과 다른 점은 무엇입니까? 다른 사람이 subvs 를 사용하기로 선택했다는 사실에 subl따라 문자를 하나 더 적게 입력하여 사용하면 실제로 볼 수있는 것이 아닙니다!
user3439894

@ user3439894 sudo는 필수 사항이 아닙니다. 그리고 위의 명령은 위의 명령이 /usr/local/bin아닙니다 /usr/bin. /usr/local/bin/ usr / bin은 배포 관리 사용자 프로그램에 사용되는 반면 사용자 응용 프로그램에는 권장 디렉토리입니다. 그래서, subsubl입니다 하지 유일한 변화, 단순히 사용자 환경에 따라 달라집니다; 그들이 쓰고 싶은 것. 혼란을 일으키는 경우 사과드립니다.
LT

1. 관리자 계정에서 그대로 명령을 실행하면 ln: /usr/local/bin/subl: Permission denied2를 반환합니다 . 그의 답변에서 /usr/local/bin/두 번째 sudo ln -s명령에서 절대적으로 mockman의 답변을 다시 읽는 것이 좋습니다 !
user3439894
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.