예를 들어 다음을 수행할 수 있습니다.
touch a
또는
touch ./a
그러면 이렇게 하면 ls
두 가지를 동시에 볼 수 있는데, ./
이것은 정확히 무엇을 위한 것입니까?
답변1
점-슬래시는 ./
현재 디렉터리에 있는 항목에 대한 상대 경로입니다.
점은 현재 디렉터리이고 슬래시는 경로 구분 기호입니다.
명령을 내릴 때 " 인수를 사용하여 유틸리티 실행 " touch ./a
이라고 말하면 현재 디렉터리에 파일이 생성되거나 타임스탬프가 업데이트됩니다 .touch
./a
touch
a
touch a
touch ./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/