pwd
나에게주세요
/data/users/me/some/random/folder
쉽게 구할 수 있는 방법이 있나요
~/some/random/folder
에서 pwd
?
답변1
Bash를 사용하는 경우 dirs
내장 함수가 원하는 동작을 수행합니다.
dirs +0
~/some/random/folder
(노트+0
, 아니요-0
.)
그리고 zsh
:
dirs
~/some/random/folder
정확하게 말하면 먼저 디렉터리 스택을 지워야 합니다. 그렇지 않으면 dirs
모든 내용이 인쇄됩니다.
dirs -c; dirs
또는 내장된 zsh
기능을 사용하세요:print
print -rD $PWD
또는
print -P %~
(그 차례급속한 확장존재하다. %~
in 은 다음으로 대체하여 $PS1
현재 디렉터리로 확장 하지만 다른 디렉터리도 처리합니다.$HOME
~
이름 디렉터리다른 사용자의 홈 디렉토리와 같거나이름 디렉터리귀하가 정의함).
답변2
Bash 변수 하위 문자열 대체 함수를 사용할 수 있습니다.
$ pwd
/home/vagrant/foo/bar
$ echo ${PWD/#$HOME/'~'}
~/foo/bar
답변3
사용 sed
:
pwd | sed "s|^$HOME|~|"
sed
홈 디렉터리 경로에 나타날 가능성이 없는 모든 문자를 정규식의 구분 기호 로 사용하는 것이 아이디어입니다 . 위의 예에서는 |
.
이 기술의 장점은 사실상 쉘 독립적이라는 것입니다.
또한 별칭을 사용하여 사용할 수 있는 다른 스크립트에서 이 동작을 얻을 수도 pwd
있습니다 ./bin/pwd | sed "s|$HOME|~|"
pwd
답변4
원하지 않는 부품을 다음으로 교체해 볼 수 있습니다 sed
.
pwd | sed 's,^/data/users/me,~,'
또는 더 나은 방법은 다음과 같습니다.
pwd | sed "s,^$HOME,~,"