// 경로에서 무엇을 의미합니까? 디렉토리 ls -s와 동일한

나는 루팅하는 동안 철자가 틀렸을 때 터미널에서 일하고있었습니다 cd( /). 실수로 입력 //하고 터미널에 도착했습니다.

root@weblocalhost://#

내가 입력 pwd하면 응답을 얻지 //만 입력하면 디렉토리 ls -s와 동일한 목록이 표시됩니다 /.

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

root@weblocalhost:/#

2를 /제외하고 항상 1 입니다. 차이가 있으며 무엇 //입니까?



답변

/ 에 해당 //

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

경로 이름

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

그리고 :

4.12 경로 이름 확인


단일로 구성된 경로 이름 <slash>은 프로세스의 루트 디렉토리로 해석됩니다. 널 경로명은 성공적으로 해결되지 않아야한다. 경로명이 두 개의 연속 <slash>문자로 시작하는 경우 선행 <slash>문자 다음에 오는 첫 번째 구성 요소 는 구현 정의 방식으로 해석 될 수 있지만 두 개 이상의 선행 <slash>문자는 단일 <slash>
문자 로 취급됩니다 .

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


답변

디렉토리에 슬래시를 여러 개 추가해도 아무 것도 변경되지 않습니다.

예를 들어이 세 명령은 모두 동일합니다.
cd /home
cd /home/
cd /home//

이 중 현재 작업 디렉토리가 / home (로 확인 pwd)으로 설정되어 있습니다.

나는 추측 당신이하도록 구성하여 프롬프트 가지고 재치있게 일 처리를 하고 예상치 못한 행동에 달려있다. 당신은 무엇을 얻 echo $PS1습니까?

설명 할 수있는 https://unix.stackexchange.com/ 에 대한 의견으로 연결 하십시오.