Linux에서 절대 경로는 항상 루트 디렉터리 "/"에서 시작하는 파일 경로를 의미하고, 상대 경로는 현재 작업 디렉터리에서 시작하는 파일 경로를 의미합니다. 절대 경로는 루트 경로 "/"에 상대적입니다. 파일이 이동하지 않는 한 절대 경로는 일정하지만, 상대 경로는 프로그램이 실행될 때 현재 위치가 변경될 수 있습니다. 이므로 파일의 상대 경로가 고정되지 않습니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
Linux에서 상대 경로란 무엇인가요?
Path는 Linux의 가장 기본적인 개념 중 하나이며 모든 Linux 사용자가 알아야 합니다.
Linux에서 경로는 파일과 디렉터리가 참조되는 방식을 나타내며 Linux 디렉터리 구조에서 파일이나 디렉터리의 위치를 제공하며 이름과 슬래시로 구성됩니다. 단순히 파일의 경로를 이해하는 것은 파일이 저장된 위치를 의미합니다. 예를 들어 /home/cat
는 cat 파일이 저장된 위치를 나타냅니다. Linux 시스템에 파일이 저장된 정확한 위치를 알려주기만 하면 파일을 찾을 수 있습니다.
시스템 사용자로서 파일이나 디렉터리에 액세스하려고 하거나 명령이나 스크립트에 대한 파일이나 디렉터리의 위치를 지정해야 할 때 경로가 사용됩니다.
cat /home/abhishek/scripts/my_script.sh
경로가 슬래시 "/"로 시작하는 경우 첫 번째 슬래시는 루트를 나타내고 경로의 나머지 슬래시는 단지 구분 기호일 뿐이라는 점을 기억하세요. 초보자는 종종 루트 슬래시와 구분 기호 슬래시를 혼동합니다.
위 그림에서 첫 번째 경로는 루트 경로(/)로 시작하고, 두 번째 경로는 /로 시작하지 않습니다. 이 두 가지 작성 방법은 모두 정확합니다. 첫 번째는 절대 경로이고 두 번째는 상대 경로입니다.
절대 경로와 상대 경로는 무엇인가요?
파일이 저장된 위치를 지정하는 방법에는 절대 경로와 상대 경로를 사용하는 방법이 있습니다.
우리는 그림 1과 같이 Linux 시스템의 모든 파일(디렉터리)이 루트 디렉터리 "/"부터 시작하는 역트리 구조로 구성되어 있음을 알고 있습니다.
그림 1 Linux 시스템 파일 구성 구조 다이어그램
절대 경로
절대 경로는 루트 디렉터리 /에서 시작해야 합니다. 예:
/home/abhishek/scripts/my_scripts.sh
절대 경로를 사용하여 bin 파일의 위치를 나타냅니다. 경로는 /usr/bin으로 작성해야 하며, 테스트 코드는 다음과 같습니다.
[root@localhost ~]# bin bash: bin: command not found <-- 没有找到 [root@localhost ~]# /usr/bin bash: /usr/bin: is a directory <-- 是一个文件
Linux 시스템에 파일명만 전달하면 지정된 파일을 찾을 수 없으며 절대값일 경우에는 찾을 수 없습니다. bin 파일의 경로가 Linux 시스템으로 전달되면 성공적으로 찾을 수 있습니다.
상대 경로
는 절대 경로와 다릅니다. 상대 경로는 루트 디렉터리/에서 시작하지 않고 현재 작업 디렉터리에서 시작합니다. 파일의 저장 위치를 나타내기 위해 상대 경로를 사용할 때 앞서 언급한 두 개의 특수 디렉토리, 즉 현재 디렉토리(.로 표시됨)와 상위 디렉토리(..로 표시됨)가 자주 사용됩니다.
예를 들어 Linux 시스템에 루트로 로그인하면 현재 작업 디렉터리의 기본값은 /root입니다. 현재 작업 디렉터리를 루트 하위 디렉터리인 Desktop으로 조정해야 하는 경우 물론 절대 경로를 사용할 수 있습니다. 샘플 코드는 다음과 같습니다.
[root@localhost ~]# pwd <-- 显示当前所在的工作路径 /root [root@localhost ~]# cd /root/Desktop [root@localhost Desktop]# pwd /root/Desktop
보시다시피 절대 경로를 사용하여 현재 작업 경로를 성공적으로 변경했습니다. 하지만 그 외에는 상대 경로를 사용하는 것이 더 쉽습니다. 현재 /root에 있고 Desktop이 현재 디렉터리에 있기 때문에 다음과 같습니다.
[root@localhost ~]# pwd <-- 显示当前所在的工作路径 /root [root@localhost ~]# cd ./Desktop [root@localhost Desktop]# pwd /root/Desktop
이 코드에서 ./Desktop은 /root에 상대적인 Destop 파일의 경로를 나타냅니다.
또 다른 예를 들자면, Linux 시스템에 루트로 로그인하고 현재 작업 디렉터리를 /root에서 /usr 디렉터리로 변환하는 경우 두 가지 방법이 있습니다.
#使用绝对路径 [root@localhost ~]# pwd <-- 显示当前所在的工作路径 /root [root@localhost ~]# cd /usr [root@localhost ~]# pwd /usr #使用相对路径 [root@localhost ~]# pwd <-- 显示当前所在的工作路径 /root [root@localhost ~]# cd ../usr <-- 相对 root,usr 位于其父目录 /,因此这里要用到 .. [root@localhost ~]# pwd /usr
간단히 말하면 절대 경로는 루트 경로 / , 파일이 이동하지 않는 한 절대 경로는 일정하지만 상대 경로는 프로그램이 실행될 때 현재 디렉터리가 변경될 수 있으므로 파일의 상대 경로는 변경되지 않습니다. 결정된.
절대 경로와 상대 경로의 차이점
우리 모두는 Linux의 디렉토리 구조가 루트(/)에서 시작하여 분기를 생성하는 트리라는 것을 알고 있습니다.
이제 abhishek 디렉토리에 있고 아래 그림과 같이 my_scripts.sh 파일에 액세스하려고 한다고 가정합니다. 두 경로가 표시됩니다.
파일을 보기 위해 ls 명령을 사용한다고 가정합니다. my_script.sh 정보를 확인한 다음 절대 경로를 사용하세요:
ls -l /home/abhishek/scripts/my_script.sh
然后,相对路径:
ls -l scripts/my_script.sh
那么,以上两种方式,除了文件路径不一样以外,其他的完全一样:
注:在Linux中,文件名区分大小写。可以有大写、小写、数字、点、中划线、下划线以及除了斜杠(/)之外的大多数字符。斜杠(/)作为保留字符,用于根目录和用于分割路径中的目录。
使用带有 . 和 .. 目录的相对路径
有两种特殊的相对路径:
如下图,我们要从 abhishek 目录中,到 prakash 目录中去。
切换目录,使用 cd 命令。如果使用绝对路径,可以这样:
cd /home/prakash
使用相对路径的话 ,需要用到特殊的相对路径 .. :
cd ../prakash
为什么要使用 .. 呢?因为相对路径要从当前目录开始,我们需要告诉 cd 命令向上一级,将我们带到 /home 目录,然后从那里在进入到 prakash 目录。
绝对路径始终以 / 开始,并且与当前位置无关;相对路径取决于当前的位置。
绝对路径和相对路径,应该使用哪个呢?
老实说,这个问题没有直截了当的答案。这要视情况而定。
如果你当前所在的目录层次结构比较深,并且需要向上或者向下一级移动,那么使用相对路径会更简单。
假设你位于
/home/username/programming/project/interface/src/header 目录中,并且需要访问 /home/username/programming/project/interface/bin 目录中的某些内容。使用相对路径可以避免键入所有冗长的目录名,只需在此处使用.././bin即可。
但是,如果你要从 /home/username/programming/project/interface/src/header目录访问 /usr/bin 目录中的某些内容,那么使用 ../../../../../../usr/bin 会比较麻烦,这个时候使用绝对路径更方便。
另一种情况,是在脚本或者程序中使用路径。如果位置是确定的,那么就使用绝对路径;如果项目中有多个文件夹,并且需要在其中之间切换,那么此处需要使用相对路径,因为你不确定最终用户会将程序放在什么地方。
推荐学习:Linux视频教程
위 내용은 Linux 절대 경로와 상대 경로란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!