상대 심볼릭 링크 경로를 "실제" 경로로 변경하는 방법(Ranger 또는 터미널에서)

상대 심볼릭 링크 경로를 "실제" 경로로 변경하는 방법(Ranger 또는 터미널에서)

실제 경로는 무엇입니까?폴더를 고려하다파일 시스템 및 심볼릭 링크에서두번째그것에. 현재 Ranger(또는 터미널) 내의 하위 디렉터리에 있다고 생각하세요.두번째/home/B/sub1/sub2실제로는 그게 다입니다 /another_but_actual_path/A/sub1/sub2. 내가 원하는 것은 상대 경로를 실제 경로로 변환하는 도구/명령/스크립트를 갖는 것입니다. 내 말은 pwd표시하는 동안 /home/B/sub1/sub2해당 경로에 액세스하고 싶다는 뜻입니다 /another_but_actual_path/A/sub1/sub2.

p.s. 시도해 보았 readlink으나 실제 경로를 알 수 없습니다.

p.s. 소위 실제 경로에 이름이 있는지 모르겠습니다.

답변1

표준 Linux "coreutils" 패키지에는 명령이 포함되어 있습니다 realpath.

이는 지정된 경로에 대한 모든 심볼릭 링크를 따르고 이와 관련된 "실제" 경로를 반환합니다.

그래서:

$ mkdir -p /tmp/foo/bar
$ ln -s /tmp/foo $HOME/foo
$ realpath $HOME/foo
/tmp/foo
$ realpath $HOME/foo/bar
/tmp/foo/bar
$ realpath $HOME/foo/bar/baz
/tmp/foo/bar/baz

$HOME/foo링크가 대체되는 실제 경로를 볼 수 있습니다 /tmp/foo.

마지막 항목이 존재할 필요는 없지만 모든 중간 지점이 존재해야 합니다.

$ realpath $HOME/foo/bar/baz/qux
realpath: '/home/sweh/foo/bar/baz/qux': No such file or directory

디렉토리 가 없기 때문입니다 baz.

답변2

glRanger에서는 및 명령을 사용할 수 있습니다 gL. 을 입력한 g후 다음을 수행합니다.

key          command
 L           cd -r %f
 l           cd -r .

관련 정보