주어진 경로 앞의 ./의 의미는 무엇입니까?


25

나는 이것을 실행하라는 말을 들었다.

./yiic message ./app/messages/config.php

그러나 나는 그 ./의미를 이해하지 못한다 .

참고 : 우리는 구글을 할 수 없습니다. 난 노력 했어:

./ 의미 ./ 우분투

아무것도 아닌 것과 같았습니다. :(


3
:이 경우, 가장이 매우 유용한 결과를했다 "점 슬래시"을 찾는 것입니다 linfo.org/dot_slash.html
heltonbiker

답변:


29

./또는 .현재 디렉토리의 유닉스 속기입니다.

현재 디렉토리가 PATH에 없을 때 지정해야합니다. PATH는 프로그램을 실행할 때 검색된 폴더 목록입니다. (당신은 서면으로이를 확인할 수 있습니다 echo $PATH파일이있는 경우.) 실행 파일이 PATH에없는 경우, 그것을 실행 당신은에서의 폴더를 지정해야합니다. 당신은 파일의 전체 경로를 제공하여이 작업을 수행 할 수 있지만합니다 현재 디렉토리에서 ./속기로 사용할 수 있습니다 .

비슷하게, ../또는 ..현재 디렉토리 위에있는 디렉토리의 속기입니다.


17
$ PATH에 포함되지 않은 이유를 답변에 포함시켜야 합니다 .. 현재 디렉토리를 자동으로 사용하는 것이 보안상의 허점이기 때문입니다. , 프로그램이 이름을 다른 사람 차종을 상상 ls하고 cd자신의 디렉토리에를 입력 한 다음ls
ZAN 살쾡이

1
@Zan 나는 항상 궁금해했습니다. 아무도 묻지 않은 질문에 대한 답변에 감사드립니다. 그러나 누군가가 가져야합니다.
crasic September

@ 잔 린스 좋은 의견 / 추가, 댓글을 잃을 수 있으므로 답변으로 편집해야합니다.
NSGaga

15

명령 행의 모든 ​​디렉토리에는 .and 라는 두 개의 "특수 디렉토리"가 ..있습니다. 이들은 각각 현재 디렉토리와 현재 디렉토리를 포함하는 디렉토리의 약어입니다.

예를 들어 cd ./more/directory/names"현재 디렉토리에서 시작하여 경로를 계속합니다"라는 의미입니다. 마찬가지로이 명령 cd ..은 "하나의 디렉토리를 변경합니다.

현재 디렉토리의 이름을 원하면 pwd명령을 사용할 수 있습니다 . 또한의 -a플래그를 사용하면 ls이 두 개의 특수 디렉토리를 볼 수 있습니다. 즉, and로 ls -a시작하는 목록을 출력합니다 ....


우수한 추가 root45 +1 :)
Rinzwind

4

다른 사람들은 이미 무엇 ...의미 하는지 (현재 디렉토리와 부모 디렉토리) 설명했습니다. 이것은 모든 경로 이름에 적용됩니다.

터미널을 열면 일반적으로 홈 디렉토리에서 시작됩니다 ~(로 확장 /home/username). 아래의 경로는 모두 동일하며 현재 작업 디렉토리가 /home/username다음과 같습니다.

  • /home/username
  • .
  • ../username
  • ../../home/username
  • ../../../home/username(의 부모 디렉토리 /는 여전히 /)
  • ./././././. (...의 현재 디렉토리에있는 현재 디렉토리)
  • ./ (트레일 링 슬래시는 디렉토리에 허용됩니다)
  • /home////username/// (그리고 여러 개의 슬래시도 있습니다)

마십시오 하지 혼동 ./program와 함께 . program../program실행 비트가 설정된 현재 디렉토리에서 파일을 실행합니다. . ./program은 bash 일이며 현재 디렉토리 source ./programprogram파일에서 bash 명령을 읽고 현재 셸에서 실행하는 것으로 작성 될 수 있습니다 .

당신은 당신이 바로 실행할 수있는 이유를 궁금해하는 경우 gedit대신 /usr/bin/gedit하지 program않고./program 하거나 /home/username/program, 관련 질문을 참조하십시오


3

그것은에서 시작하는 것을 의미합니다 current directory path .

다음 path과 같이 가정 해 봅시다 .

/usr/ /usr/bin/ /usr/local/bin

그리고 내부 /usr/bin/ 에는이라는 실행 파일이 yiic있습니다.

발행하면 yiic 그것을 하면에서 하나를 시작합니다 /usr/bin/.

발행 ./yiic하면 시스템에이 실행 파일의 현재 디렉토리를 찾도록 지시합니다.


알았어 ..하지만 난 아직 못 알아 내부에 yiic /home/mysuser/이 있고를 사용하여 탐색 한다고 가정 해 봅시다 cd /home/myuser. 일단 안으로 들어가면, 나는 yiic을하는 것이 그 디렉토리에있는 동안 전화했기 때문에 작동해야한다고 믿었습니다. 그러나 그는 명령하지 말라고 명령합니다. 내가 똑같이하고 ./를 사용하면 제대로 실행됩니다 ... 조금 더 자세히 설명해 주시겠습니까?
MEM

@frabjous도이 의견에 답변했습니다.
MEM

아니! ./를 사용하여 현재 디렉토리를 사용하도록 지시하지 않는 한 항상 PATH 지시문을 찾습니다. user45의 답변을보십시오 : 디렉토리에서 .작업을 수행 할 때 볼 수있는 폴더 안의 특수 파일입니다 ls -la.)
Rinzwind
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.