Linux에서 ./(점-슬래시)는 무엇을 의미합니까?

Linux에서 ./(점-슬래시)는 무엇을 의미합니까?

예를 들어 다음을 수행할 수 있습니다.

touch a

또는

touch ./a

그러면 이렇게 하면 ls두 가지를 동시에 볼 수 있는데, ./이것은 정확히 무엇을 위한 것입니까?

답변1

점-슬래시는 ./현재 디렉터리에 있는 항목에 대한 상대 경로입니다.

점은 현재 디렉터리이고 슬래시는 경로 구분 기호입니다.

명령을 내릴 때 " 인수를 사용하여 유틸리티 실행 " touch ./a이라고 말하면 현재 디렉터리에 파일이 생성되거나 타임스탬프가 업데이트됩니다 .touch./atoucha

touch atouch ./a두 명령 모두 현재 디렉터리에서 호출되는 모든 항목 에 대해 작동하므로 및 사이에는 차이가 없습니다 .a

비슷한 방식으로 현재 디렉터리 위의 디렉터리가 touch ../a적용됩니다 . 즉, "계층 구조에서 한 디렉터리 위"를 의미합니다.a..

...2 개야특수 디렉토리 이름Unix 시스템의 모든 디렉토리에 존재합니다.


./파일을 만들거나 삭제하려고 하거나 파일 이름의 첫 번째 문자로 대시를 사용하려는 경우와 같이 파일 이름 앞에 오는 것이 유용한 경우가 있습니다 .

예를 들어,

touch -a file

라는 이름의 파일이 생성되지 않으며 -a file생성되지도 않습니다.

touch '-a file'

하지만,

touch ./'-a file'

회의.

답변2

./이 표기법은 현재 디렉터리에서 스크립트나 기타 실행 파일을 실행하려고 할 때 유용합니다. Windows 명령 프롬프트와 달리 Unix(및 Linux와 같은 Unix 계열 시스템) 셸은 환경 변수를 확인하기 전에 현재 디렉터리에서 실행 파일을 확인하지 않으며 보안상의 이유로 Unix 시스템에서는 이를 PATH포함하지 않는 경향이 있습니다 . 패스를 지정해야 합니다../PATH

./executable

그리고 뿐만 아니라

executable

사용자는 "예, 저는하다현재 디렉터리에서 이 실행 파일을 실행하고 싶습니다."

답변3

이를 상대 경로라고 합니다.

.현재 작업 디렉터리를 나타냅니다. 따라서 현재 에 있다면 /home/jesse그것은 .단지 링크일 뿐이 /home/jesse므로 가리키면 ./실제로는 다음을 가리키는 것입니다./home/jesse/

관련 정보