// 경로에서 무엇을 의미하나요?

// 경로에서 무엇을 의미하나요?

터미널에서 작업하던 중 cd루트( /)를 입력하는 동안 철자가 틀렸습니다. 실수로 다음을 입력하여 //터미널에 접속했습니다.

root@weblocalhost://#

을 입력하면 pwd응답을 받지만 //입력하면 디렉토리 ls -s에 있는 것과 동일한 목록이 표시됩니다 /.

2개 이상을 입력하면 다음과 같은 결과가 ///나타납니다.

root@weblocalhost:/#

2를 제외하고 항상 1입니다 /. 차이점이 있으며 무엇을 //위한 것입니까?

답변1

/는 다음과 같습니다//

에서POSIX 사양(강조 추가):

3.267 경로명

파일을 식별하는 데 사용되는 문자열입니다. POSIX.1-2008의 맥락에서 경로 이름은 종료 널 바이트를 포함하여 {PATH_MAX} 바이트로 제한될 수 있습니다. 선택적 시작 문자가 있고 <slash> 그 뒤에는 <slash> 문자로 구분된 0개 이상의 파일 이름이 옵니다. 경로 이름에는 선택적으로 하나 이상의 후행 <slash>문자가 포함될 수 있습니다.정확히 두 개의 선행 문자가 있는 경우를 제외하고 연속된 여러 <slash>문자는 하나와 동일한 것으로 간주됩니다 .<slash><slash>

그리고:

4.12 경로명 결정

...
단일로 구성된 경로 이름은 <slash>프로세스의 루트 디렉터리로 확인됩니다. null 경로 이름은 성공적으로 해결되지 않습니다.경로 이름이 두 개의 연속 문자로 시작하는 경우 두 개 이상의 선행 문자가 단일 문자로 처리 되더라도 <slash>선행 문자 뒤의 첫 번째 구성 요소는 구현에서 정의된 방식으로 해석될 수 있습니다 .<slash><slash><slash>

예외(cygwin 및 디렉토리)에 대한 자세한 설명은 다음을 참조하세요.Linux는 여러 연속 경로 구분 기호(/home////username///file)를 어떻게 처리합니까?

답변2

디렉토리에 슬래시를 여러 개 추가해도 아무 것도 변경되지 않습니다. 예를 들어 다음 세 가지 명령은 모두 동일합니다.

cd /home
cd /home/
cd /home//

이 중 하나가 끝나면 현재 작업 디렉토리가 /home으로 설정됩니다( 확인 pwd).

추측하다프롬프트가 다음과 같이 구성되어 있는지 확인하세요.뭔가 현명한 일을 해라그리고 당신은 예상치 못한 행동에 직면했습니다. 당신은 무엇을 얻을 때 echo $PS1?

확인하다unix.stackexchange.com에 대한 이 댓글그것을 설명할 수 있습니다.

관련 정보