첫 번째 명령은 실패하고 두 번째 명령은 성공하는 이유는 무엇입니까?
$ cd ~"/mydata"
bash: cd: ~/mydata: No such file or directory
$ cd ~/"mydata"
답변1
방법물결표 확장작업은 이렇습니다물결표 접두사따옴표가 없는 첫 번째 슬래시까지의 모든 문자로 구성되며 ~
, 따옴표가 없는 슬래시가 없는 경우 단어 끝에 추가되는 모든 문자로 구성됩니다. 그러면 발생하는 대체는 물결표 접두사에 따라 달라지며 특수한 경우입니다. 그렇지 않으면 ~
제거 ~-
되고 나머지 문자는 사용자 이름으로 처리됩니다. 참조하십시오 (쉘이 Bash가 아닌 경우 쉘의 매뉴얼 페이지를 참조하십시오).~+
~
man bash
물결표
~"/mydata"
뒤에는선두슬래시이므로 물결표 접두사는~/mydata
; 물결표 접두사로 명명된 사용자 계정이 없으므로/mydata
대체되지 않으며 쉘은 문자 그대로 이름이 지정된 디렉터리를 찾지~/mydata
않습니다.물결표
~/"mydata"
뒤에는 따옴표가 없는 슬래시가 따르므로 물결표가 설정된 경우 물결표는$HOME
if 의 내용 으로 대체되고HOME
, 그렇지 않으면 사용자의 홈 디렉터리 이름으로 대체됩니다( 에서 가져옴/etc/passwd
)./home/
사용자 이름 디렉토리 이름 과 같은 것입니다/mydata
.