>  기사  >  운영 및 유지보수  >  Linux 절대 경로와 상대 경로란 무엇입니까?

Linux 절대 경로와 상대 경로란 무엇입니까?

青灯夜游
青灯夜游원래의
2023-01-31 10:00:458207검색

Linux에서 절대 경로는 항상 루트 디렉터리 "/"에서 시작하는 파일 경로를 의미하고, 상대 경로는 현재 작업 디렉터리에서 시작하는 파일 경로를 의미합니다. 절대 경로는 루트 경로 "/"에 상대적입니다. 파일이 이동하지 않는 한 절대 경로는 일정하지만, 상대 경로는 프로그램이 실행될 때 현재 위치가 변경될 수 있습니다. 이므로 파일의 상대 경로가 고정되지 않습니다.

Linux 절대 경로와 상대 경로란 무엇입니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

Linux에서 상대 경로란 무엇인가요?

Path는 Linux의 가장 기본적인 개념 중 하나이며 모든 Linux 사용자가 알아야 합니다.

Linux에서 경로는 파일과 디렉터리가 참조되는 방식을 나타내며 Linux 디렉터리 구조에서 파일이나 디렉터리의 위치를 ​​제공하며 이름과 슬래시로 구성됩니다. 단순히 파일의 경로를 이해하는 것은 파일이 저장된 위치를 의미합니다. 예를 들어 /home/cat는 cat 파일이 저장된 위치를 나타냅니다. Linux 시스템에 파일이 저장된 정확한 위치를 알려주기만 하면 파일을 찾을 수 있습니다.

시스템 사용자로서 파일이나 디렉터리에 액세스하려고 하거나 명령이나 스크립트에 대한 파일이나 디렉터리의 위치를 ​​지정해야 할 때 경로가 사용됩니다.

cat /home/abhishek/scripts/my_script.sh

경로가 슬래시 "/"로 시작하는 경우 첫 번째 슬래시는 루트를 나타내고 경로의 나머지 슬래시는 단지 구분 기호일 뿐이라는 점을 기억하세요. 초보자는 종종 루트 슬래시와 구분 기호 슬래시를 혼동합니다.

Linux 절대 경로와 상대 경로란 무엇입니까?

위 그림에서 첫 번째 경로는 루트 경로(/)로 시작하고, 두 번째 경로는 /로 시작하지 않습니다. 이 두 가지 작성 방법은 모두 정확합니다. 첫 번째는 절대 경로이고 두 번째는 상대 경로입니다.

절대 경로와 상대 경로는 무엇인가요?

파일이 저장된 위치를 지정하는 방법에는 절대 경로와 상대 경로를 사용하는 방법이 있습니다.

우리는 그림 1과 같이 Linux 시스템의 모든 파일(디렉터리)이 루트 디렉터리 "/"부터 시작하는 역트리 구조로 구성되어 있음을 알고 있습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.