![Linux 심볼릭 링크: 지정된 디렉토리로 이동하는 방법은 무엇입니까?](https://rvso.com/image/1558038/Linux%20%EC%8B%AC%EB%B3%BC%EB%A6%AD%20%EB%A7%81%ED%81%AC%3A%20%EC%A7%80%EC%A0%95%EB%90%9C%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A1%9C%20%EC%9D%B4%EB%8F%99%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
자체 디렉토리에 프로젝트가 있습니다.
/dir/to/project/
데스크탑에 해당 디렉토리에 대한 심볼릭 링크가 있습니다.
/홈/사용자/데스크탑/프로젝트/
해당 링크를 두 번 클릭하면 열리는 디렉터리 창은 다음과 같습니다.
/홈/사용자/데스크탑/프로젝트/
실제 대신에 /dir/to/project
.
명령줄(Bash)에서도 마찬가지입니다.
내가 원하는 것을 얻는 것이 가능합니까? 즉, 상징적인 디렉터리 대신 가리키는 디렉터리로 이동하는 것이 가능합니까?
참고: 제가 지금 사용하고 있는 Windows 환경은 Xfce이지만 일반적인 답변에도 관심이 있습니다.
답변1
bash
내장 cd
된 용도 -P
및 -L
스위치 에서 ; pwd
같은 방식으로 이해합니다.
user@host:~$ ln -s /bin foobar
user@host:~$ cd -L foobar # follow link
user@host:~/foobar$ pwd -L # print $PWD
/home/user/foobar
user@host:~/foobar$ pwd -P # print physical directory
/bin
user@host:~/foobar$ cd - # return to previous directory
/home/user
user@host:~$ cd -P foobar # use physical directory structure
user@host:/bin$ pwd -L # print $PWD
/bin
user@host:/bin$ pwd -P # print physical directory
/bin
더욱이 cd ..
까다로울 수 있습니다.
user@host:/bin$ cd
user@host:~$ cd -L foobar
user@host:~/foobar$ cd -L .. # go up, to ~/
user@host:~$ cd -L foobar
user@host:~/foobar$ cd -P .. # go up, but not to ~/
user@host:/$
help cd
및 을 참조하십시오 help pwd
. /bin/pwd
유사하게 동작하는 실행 파일(즉, 내장 쉘이 아닌)이 있을 수도 있습니다 . 내 쿠분투에서 차이점은 기본적으로 pwd
옵션을 사용하지 않고 내장되어 있다는 것 -L
입니다 ./bin/pwd
-P
( 역할을 함 ) 및 ( 역할을 함 )을 cd
통해 내장 의 기본 동작을 조정할 수 있습니다 . 자세한 내용은 참조하세요 .set -P
cd
cd -P
set +P
cd
cd -L
help set
답변2
readlink
대상에 대한 링크를 확인하는 데 사용합니다 .
cd $(readlink thelink)
Bash 프로필에 함수를 정의할 수 있습니다.
function cdl { local dir=$(readlink -e $1); [[ -n "$dir" ]] && cd $dir; }
답변3
GUI에서 이를 달성하는 방법을 모르지만 명령줄에 해결 방법이 있습니다.
심볼릭 링크는 다음과 같습니다.
/home/user/Desktop/project/
그런 다음 사용할 수 있습니다읽기링크해결된 기호 링크 또는 표준 파일 이름을 가져오는 명령입니다. 그럼 그냥 cd
그것으로.
cd `readlink /home/user/Desktop/project`
여기에서는 readlink
링크 이름을 확인한 다음 다음을 cd
사용하여 전달합니다.치환.
이미 데스크탑 폴더에 있다면 절대 경로를 지정할 필요가 없습니다 project
.
cd `readlink project`
이 폴더를 자주 방문하는 경우 bash에서 해당 폴더에 대한 한 줄 함수를 작성할 수 있습니다.
function cdproject
{
cd `readlink home/user/Desktop/project`;
}