./home/Desktop은 부정확하고 ./Desktop은 왜 올바른가요?

./home/Desktop은 부정확하고 ./Desktop은 왜 올바른가요?

어제부터 리눅스를 배우기 시작했습니다. 내 책이나 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의 무료 전자책을 추천합니다.

전자책 링크는 다음과 같습니다.

Linux 명령줄 작성자: William Shots

관련 정보