Te falta el '/' al principio de tu aplicación y sudo
ya que /bin
es propiedad de root
y no puedes escribir en él como un usuario normal. Como lo tiene actualmente, solo funcionaría si su directorio actual fuera la raíz del sistema. Por supuesto, esto supone que la aplicación Sublime Text está en su carpeta principal de aplicaciones.
Prueba esto ...
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /bin/sub
Una idea posterior: se considera una mala práctica cambiar el contenido de /bin
y /usr/bin
porque cualquier actualización próxima de OS X puede borrar el contenido allí. /usr/local/bin
es el lugar habitual para instalar los binarios proporcionados por el usuario, por lo que
[[ -d /usr/local/bin ]] || sudo mkdir /usr/local/bin
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/sub
podría ser la mejor opción.
O (como probablemente nunca necesites ejecutar Texto sublime desde un script de shell), simplemente define un alias de bash
alias sub=/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
que se debe agregar a tu archivo de inicio de bash para que se pegue
echo "alias sub=/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl" >> ~/.bashrc