이것은 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가 호출되어 공급업체에서 제공하는 명령 인터페이스 앞에 나타나도록 하려면 상황이 더 복잡합니다).readlink
readlink
PATH
$ greadlink ourlink
../tmp/file
$ greadlink -f ourlink
/private/var/tmp/file
$