알아요심볼릭 링크를 생성할 때경로는 절대 경로여야 합니다.목적지 위치 기준
/usr/local/bin
현재 디렉터리에 있는 파일에 대한 링크를 만들려는 경우 다음 을 수행하는 것보다 더 쉬운 방법이 있습니까? 예를 들어 bash의 탭 완성 기능을 사용하는 경우...
ln -s $(pwd)/target_file /usr/local/bin/
...?
(이를 $(_something_)
평가 _something_
하고 쉘 명령으로 대체합니다.)
답변1
파일의 탭 완성이 $PWD
내 변수에서 작동합니다.
bash-4.4$ touch bar baz
bash-4.4$ ln -s $PWD/ba<tab>
bar baz
답변2
완료하려면 몇 가지 대안이 있습니다 zsh
.
~0
(또는~+0
)는 약간 더 짧은 대안입니다(파일 이름 완성은 , 또는 , 또는 이후와 마찬가지로 작동합니다$PWD
). ...는 이전에 있었던 디렉토리이며 완성 시스템은 다음과 같이 구성할 수도 있습니다. (위)이며 확장됩니다.$PWD/fi<Tab>
~0/fi<Tab>
$(pwd)fi<Tab>
~1
~2
~+<Tab>
- 원인이 절대 경로로 확장되는
ln -s file(:A) /usr/local/bin
곳을 사용할 수 있습니다 (그러나 대상의 심볼릭 링크로 확인된다는 점에 유의하세요).(:A)
file
또한 GNU -r
/ 옵션에 주목하세요:--relative
ln
ln -rs file /usr/local/bin/
다음과 같이 현재 디렉토리를 가리키는 /usr/local/bin/file
심볼릭 링크(상대 경로로 )를 생성합니다 .../../../home/you/file
file
ln -s "$(realpath -s --relative-to=/usr/local/bin file)" /usr/local/bin
(GNU 사용 realpath
).