lsを使用して/usr/local/binにあるファイルを表示できますが、それを実行しようとするとファイルが見つかりません。

lsを使用して/usr/local/binにあるファイルを表示できますが、それを実行しようとするとファイルが見つかりません。

私はOS Xを使っていますが、ターミナルの仕事なので、ここで尋ねるのが一番良いようです。成功せずにコマンドラインでSublime Textを操作しようとしていますsublln -s <location of subl file in Applications; not part of $PATH> /usr/local/bin/sublリンクを作るために走りました。

実行すると、ディレクトリにリンクが表示されますls/usr/local/binsubl

しかし、実行しようとするとCommand not found。絶対パスを入力しようとすると、この問題を解決する方法がわからないという/usr/local/bin/sublメッセージが表示されます。No such file or directory.アイデアはありますか?

の出力はreadlink /usr/local/bin/subl次のとおりです。

/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl

ベストアンサー1

シンボリックリンクに追加のバックスラッシュがあります。実際のパスは

/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl

しかし、あなたはシンボリックリンクを作成しました

/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl

シェルでシンボリックリンクされたテキストを使用すると、バックスラッシュがエスケープ文字として解釈され、正しいパスを取得できます。しかし、シンボリックリンクを生成するときに何とかバックスラッシュを引用したのであってはいけないところにバックスラッシュが生じることになります。

シンボリックリンクの回復:実行

ln -sf /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin

ヒント:既存のファイルを参照するときに補完機能を使用してください。これにより、間違った名前を入力することはできません。

おすすめ記事