어제부터 리눅스를 배우기 시작했습니다. 내 책이나 Google을 통해 답변할 수 없는 질문이 있습니다. 껍질 안에 있다는 ./
것의 차이점은 무엇입니까?/
제가 이 질문을 하는 이유는 명령을 실행할 때 ./home/yogesh/Desktop/Books
다음 오류가 발생하기 때문입니다.
bash: ./home/yogesh/Desktop : No such file or directory
그러나 포인트를 삭제하면
/home/yogesh/Desktop/Books : Is a directory
아니면 실행하면 /Desktop
반환됩니다.
/Desktop : No such file or directory
/
하지만 내가 얻기 전에 점을 추가하면
./Desktop: is a directory
./
이들그리고 그리고 의 차이점은 무엇인가요 /
?
답변1
Unix에서는(Windows와 마찬가지로) /foo
파일이나 디렉터리의 위치입니다(절대, 루트에서 시작: ) /
. ./foo
상대 위치(현재 디렉터리 기준) 대신 foo
.
/Desktop
또는 명령을 입력하여 ./Desktop
실행할 수 없는 데스크탑을 실행하도록 쉘에 지시할 수 있습니다 .
/Desktop
존재하지 않으므로 오류 메시지가 나타납니다.
그러나 ./Desktop
절대적인 위치는 /Home/YOURNAME/Desktop
존재합니다. 하지만 실행 파일이 아닌 디렉터리입니다... 실행하려는 명령의 접두사(보통 cd
또는 ls
) 를 잊어버렸을 수도 있습니다.
답변2
설명 예:
/
(슬래시)는 파일 시스템 루트의 루트를 의미합니다. 따라서 /home/yogesh/Desktop/Books
루트에서 시작하여 확인 home
, home
확인 yogesh
등을 수행합니다. 이를 절대 경로라고 합니다.
.
(점)은 현재 디렉터리에서 시작한다는 의미입니다. 따라서 현재 디렉토리가 이고 /home/yogesh
을 선택했다면 ./Desktop
거기에 있는 것입니다. 이를 상대 경로라고 합니다.
답변3
Unix 및 Unix 계열 시스템에서는 .
현재 디렉터리를 나타냅니다. 예를 들어 ls .
와 마찬가지로 ls
현재 디렉터리의 내용이 나열됩니다. 따라서 이를 ./Desktop
명령 으로 사용하면 Desktop
현재 디렉터리 아래에서 해당 디렉터리를 찾습니다. 그러면 이것이 디렉터리이므로 명령이 아니기 때문에 실행할 수 없다는 오류 메시지가 표시됩니다.
/
파일 시스템의 루트입니다. C:\
Windows에서도 비슷합니다 . 를 실행하면 /Desktop
시스템은 Desktop
해당 디렉토리 내에서 해당 이름의 디렉토리를 찾습니다 /
. 그것은 존재하지 않는다고 알려줍니다.
예를 들어 내가 있는 곳에서 /home/yogesh
로 이동하려면 /home/yogesh/Desktop
상대 경로(현재 있는 디렉터리 기준)를 사용하여 cd ./Desktop
또는 을 실행 cd Desktop
하거나, 절대 경로를 사용하여 을 실행할 수 있습니다 cd /home/yogesh/Desktop
.
답변4
첫 번째는 상대적인 위치가 되어서는 안 됩니다.
상대 위치는 현재 위치보다 짧은 것입니다. 절대 위치는 Linux의 첫 번째 디렉터리 위치인 root/에서 시작됩니다. /var에 있지 않을 때 사용할 수 있습니다.
cd /var/www
/var/www는 절대 위치입니다. /var에 있다면 다음을 사용할 수 있습니다.
cd ./www
또는
cd www
더 짧게 분필로 작성하세요.
William Shots의 무료 전자책을 추천합니다.
전자책 링크는 다음과 같습니다.