シンボリックリンクが存在しないようです。

シンボリックリンクが存在しないようです。

これはMacOSですが、Unixの問題だと99%確信しています。

MySQLが正確にどこにインストールされているかを確認しようとしています。端末に次のように入力します。

which mysql

私は得る:

/usr/local/bin/mysql

だから私はそのディレクトリ()に何があるのか​​を確認し、ls -al /usr/local/bin/mysqlそれは私に次のものを与えます:

lrwxr-xr-x  1 myuser  admin  32 Mar 20  2017 /usr/local/bin/mysql -> ../Cellar/mysql/5.7.17/bin/mysql

いいねシンボリックリンク。だから)を介してシンボリックリンクにアクセスしようとすると、次ls -al ../Cellar/mysql/5.7.17/bin/mysqlのような結果が得られます。

ls: ../Cellar/mysql/5.7.17/bin/mysql: No such file or directory

../Cellar/mysql/5.7.17/bin/mysqlそれでは、私のコンピュータでこれをどこで見つけることができますか?

答え1

リンクは相対的です私に(プロセスの現在の作業ディレクトリではありません)mysql残りを削除して追加します。

/usr/local/bin/../Cellar/mysql/5.7.17/bin/mysql

または別の言葉で言えば

/usr/local/Cellar/mysql/5.7.17/bin/mysql

realpath(3)手動操作なしでこれらの問題を解決するために、関連するシェルまたはプログラミング言語によって公開されることも露出されない可能性があるシステムコールがあります。次のようなさまざまなシェルコマンドの移植性が影響を受けます。

$ cd /var/tmp
$ touch file
$ ln -s ../tmp/file ourlink
$ realpath ourlink                      # because I'm in mksh, YMMV
/private/var/tmp/file
$ readlink ourlink
../tmp/file
$ readlink -f ourlink
readlink: illegal option -- f
usage: readlink [-n] [file ...]
$ 

一貫した外部コマンドインターフェイスが必要な場合は、GNU coreutilsをインストールして使用することもできます(realpath(3)GNUが呼び出され、ベンダーが提供するコマンドインターフェイスの前に表示されるようにするには状況がより複雑です)。readlinkreadlinkPATH

$ greadlink ourlink
../tmp/file
$ greadlink -f ourlink
/private/var/tmp/file
$ 

関連情報