우선, 이것이 ~/
홈 디렉토리 라는 것을 알고 있습니다. CD를 사용 ~
하거나 ~/
홈 디렉토리로 이동합니다.
그러나, cd ~X
나를 특별한 장소로 데려가는 X
것 같습니다.
내가 “치면 배쉬에서, cd ~
“와 히트 탭을, 가능한 한 무리의 표시 ~X
와 같은 옵션 ~mail
과 ~postgres
과 ~ssh
. 해당 폴더로 이동하여 a를 수행하면 pwd
이 폴더가 홈 디렉토리에 없다는 것을 알 수 있습니다. 그들은 사방에 있습니다.
별칭이 아닙니다. 확인했습니다. env.
변수 가 아니 거나 $
.
이러한 링크를 설정하는 것은 무엇이며 설정되는 위치를 어디에서 찾을 수 있습니까?
답변
” 물결 확장 ” 이라는 Bash 기능 입니다. OS가 아닌 쉘의 기능입니다. 예를 들어 csh를 사용하면 다른 동작을 얻을 수 있습니다.
정보의 출처에 대한 질문에 답하기 위해 : 홈 디렉토리는 변수에서 가져 오며 $HOME
(저장 한 내용에 관계없이) 다른 사용자의 집은 getpwent()
. 이 기능은 일반적으로 NSS에 의해 제어됩니다 . 따라서 /etc/passwd
NIS, LDAP 또는 SQL 데이터베이스와 같은 원하는 소스를 사용하여 정보를 검색하도록 구성 할 수 있지만 기본적으로 에서 가져옵니다.
물결표 확장은 홈 디렉토리 조회 이상입니다. 요약은 다음과 같습니다.
~ $HOME
~fred (freds home dir)
~+ $PWD (your current working directory)
~- $OLDPWD (your previous directory)
~1 `dirs +1`
~2 `dirs +2`
~-1 `dirs -1`
dirs
그리고 ~1
, ~-1
등과 함께 사용 pushd
하고 popd
.
답변
이들은 사용자의 홈 디렉토리입니다. cd ~(your username)
예를 들어를 시도하십시오 .
답변
사용자의 홈 디렉토리 /etc/passwd
입니까? postgres, sendmail, apache 등과 같은 서비스는 일반 사용자와 마찬가지로 홈 디렉토리가있는 시스템 사용자를 만듭니다.
답변
사용자입니다. 귀하의 확인 /etc/passwd
.
cd ~username
해당 사용자의 홈 디렉토리로 이동합니다.
답변
내 컴퓨터에서 설정하는 방식 때문에 다음을 수행합니다.
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
첫 번째는 환경 변수의 값에주의를 기울입니다 $HOME
. 일부러 $HOME
NFS 마운트 파일 시스템 대신 로컬 파일 시스템 으로 설정했습니다 . 두 번째는 암호 파일 (대략 NIS가 약간 복잡함)을 읽고 암호 파일에 내 홈 디렉토리가 있다고 표시 /u/jleffler
되고 해당 디렉토리로 변경됨을 발견합니다.
성가신 점은 대부분의 소프트웨어가 위와 같이 동작한다는 것입니다 (그리고 쉘에 대한 POSIX 사양에는이 동작이 필요합니다). 암호 파일의 정보를 $ HOME의 현재 값으로 취급하는 소프트웨어를 사용하고 있습니다 (사용할 선택의 여지가별로 없습니다).
이것을 질문에 적용하면-다른 사람들이 지적했듯이 ‘ cd ~x
‘는 사용자 ‘x’의 홈 디렉토리로 이동하며 더 일반적으로 물결표 확장이 수행 될 때마다 ~x
사용자 ‘x’의 홈 디렉토리를 의미합니다 (오류입니다. 사용자 ‘x’가 존재하지 않는 경우).
다음을 언급 할 가치가 있습니다.
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
~+
현재 디렉토리로 이어지는 경로에서 심볼릭 링크를 이동하는 이상한 일을하지 않는 한 ‘ ‘에 대한 용도를 즉시 찾을 수 없습니다 .
다음을 수행 할 수도 있습니다.
cd -
이는 ~-
.
답변
Bash의 물결표 확장 :
http://bash-hackers.org/wiki/doku.php/syntax/expansion/tilde
답변
사용하는 경우 autofs
확장은 실제로 /etc/auto.home
(또는 배포판과 유사) 에서 올 수 있습니다 . 예를 들어, 내 /etc/auto.master
모습은 다음과 같습니다.
/home2 auto.home --timeout 60
그리고 /etc/auto.home
외모가 좋아 :
mgalgs -rw,noquota,intr space:/space/mgalgs