[리눅스] / 경로와 // 경로 차이점
프로그래밍/서버2020. 12. 20. 10:37
리눅스에선 가끔 path를 표현할 때 //로 시작되는 경우를 볼 수 있습니다.
/로 시작해도 될 것 같은데 왜 //로 시작하는지 궁금해서 찾아봤습니다.
stackoverflow에 정보가 좀 있습니다.
(pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap04.html#tag_04_11)
A pathname that begins with two successive slashes may be interpreted in an implementation-defined manner, although more than two leading slashes shall be treated as a single slash. |
슬래쉬 2개로 시작하는 경로는 구현된 방식에 따라 해석된다고 합니다. 3개 이상의 슬래쉬는 1개 슬래쉬로 처리된다고 하네요.
(tiswww.case.edu/php/chet/bash/FAQ)
E10) Why does `cd //' leave $PWD as `//'? POSIX.2, in its description of `cd', says that *three* or more leading slashes may be replaced with a single slash when canonicalizing the current working directory. This is, I presume, for historical compatibility. Certain versions of Unix, and early network file systems, used paths of the form //hostname/path to access `path' on server `hostname'. |
또 다른 내용을 보면, 호환성 이유 때문에 사용하는게 아니겠냐고 추정하네요. 특정 Unix 버전이나 초기 네트워크 파일 시스템에서 //hostname/path는 서버 'hostname'의 'path' 경로에 접근하기 위해 쓰였다고 합니다.
On my git bash emulation (technically a windows machine) an attempt to ls -l // results in the machine trying to read and list the entire available network... wow. – Paul Hodges Oct 16 '17 at 16:15 |
실제 한 유저의 댓글을 보면 Git Bash에서 ls -l // 를 했더니 사용가능한 모든 네트워크를 표시하려고 했다고 합니다.
윈도우 머신에선 //가 특별한 의미를 가지도록 구현된 것 같습니다.
참고
stackoverflow.com/questions/16840916/what-is-path-how-is-it-different-from
stackoverflow.com/questions/20690828/what-does-double-slash-in-cd-mean-in-linux
댓글 영역