[리눅스] / 경로와 // 경로 차이점

프로그래밍/서버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

 

What is path //, how is it different from /

We know root directory is /, and according to posix, there is another directory // which differs from /. When you ls / and ls //, the output is the same, so as stat, however if you cd / and cd //, ...

stackoverflow.com

stackoverflow.com/questions/20690828/what-does-double-slash-in-cd-mean-in-linux

 

What does double slash // in `cd //` mean in Linux?

I've entered a command cd // instead of cd / by mistake and instead of getting an error as I'd expect the shell (Bash) showed a prompt as if I'm in the // directory:- @<hostname...< p=""> </hostname...<>

stackoverflow.com

 

작성자

Posted by 드리머즈

관련 글

댓글 영역