Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah laluan mutlak Linux dan laluan relatif?

Apakah laluan mutlak Linux dan laluan relatif?

青灯夜游
青灯夜游asal
2023-01-31 10:00:458121semak imbas

Di Linux, laluan mutlak merujuk kepada laluan fail yang sentiasa bermula dari direktori akar "/", dan laluan relatif merujuk kepada laluan fail yang bermula dari direktori kerja semasa. Laluan mutlak adalah relatif kepada laluan akar "/". , jadi laluan relatif kepada fail tidak ditetapkan.

Apakah laluan mutlak Linux dan laluan relatif?

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Apakah itu laluan relatif dalam Linux

Path ialah salah satu konsep paling asas dalam Linux, yang mesti diketahui oleh setiap pengguna Linux.

Dalam Linux, laluan merujuk kepada cara fail dan direktori dirujuk; ia memberikan lokasi fail atau direktori dalam struktur direktori Linux dan terdiri daripada nama diikuti dengan garis miring. Memahami laluan fail merujuk kepada lokasi di mana fail disimpan. Contohnya, /home/cat mewakili lokasi di mana fail kucing disimpan. Selagi kami memberitahu sistem Linux lokasi tepat di mana fail disimpan, ia boleh mencari fail tersebut.

Sebagai pengguna sistem, anda menggunakan laluan apabila anda ingin mengakses fail atau direktori, atau apabila anda mesti menentukan lokasi fail atau direktori untuk arahan atau skrip.

cat /home/abhishek/scripts/my_script.sh

Ingat bahawa jika laluan bermula dengan garis miring "/", garis miring pertama mewakili akar dan garis miring yang tinggal dalam laluan hanyalah pemisah. Pemula sering mengelirukan garis miring akar dan garis miring pembatas.

Apakah laluan mutlak Linux dan laluan relatif?

Dalam gambar di atas, laluan pertama bermula dengan laluan akar (/), dan laluan kedua tidak bermula dengan /. Kedua-dua cara penulisan ini adalah betul, yang pertama adalah laluan mutlak dan yang kedua adalah laluan relatif.

Apakah itu laluan mutlak dan laluan relatif? dan laluan relatif. Kami tahu bahawa semua fail (direktori) dalam sistem Linux disusun menjadi struktur pokok terbalik bermula dari direktori akar "/", seperti yang ditunjukkan dalam Rajah 1.

Rajah 1 rajah struktur organisasi fail sistem Linux

Apakah laluan mutlak Linux dan laluan relatif?Laluan mutlak

Laluan mutlak mesti bermula dari direktori akar / Contohnya:

Gunakan laluan mutlak untuk menunjukkan lokasi fail bin Jalan hendaklah ditulis sebagai /usr/bin Kod ujian adalah seperti berikut:

/home/abhishek/scripts/my_scripts.sh

Anda boleh melihat bahawa jika anda hanya menghantar nama fail kepada sistem Linux, ia tidak dapat mencari fail yang ditentukan tetapi apabila laluan mutlak fail bin dihantar ke sistem Linux, ia boleh ditemui dengan jayanya.

[root@localhost ~]# bin
bash: bin: command not found   <-- 没有找到
[root@localhost ~]# /usr/bin
bash: /usr/bin: is a directory   <-- 是一个文件
Laluan relatif

berbeza daripada laluan mutlak tidak bermula dari direktori akar /, tetapi bermula dari direktori kerja semasa. Apabila menggunakan laluan relatif untuk menunjukkan lokasi storan fail, dua direktori khas yang disebut sebelum ini sering digunakan, iaitu direktori semasa (diwakili oleh .) dan direktori induk (diwakili oleh ..). Sebagai contoh, apabila kita log masuk ke sistem Linux sebagai root, direktori kerja semasa menjadi lalai kepada /root Jika kita perlu melaraskan direktori kerja semasa ke Desktop subdirektori akar, sudah tentu kita boleh menggunakan laluan mutlak , kod sampel adalah seperti berikut:

Seperti yang anda lihat, dengan menggunakan laluan mutlak, kami berjaya menukar laluan kerja semasa. Tetapi selain itu, lebih mudah untuk menggunakan laluan relatif. Oleh kerana pada masa ini ia berada di /root, dan Desktop terletak dalam direktori semasa, jadi:

[root@localhost ~]# pwd     <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd /root/Desktop
[root@localhost Desktop]# pwd
/root/Desktop
Dalam kod ini, ./Desktop mewakili laluan fail Destop berbanding /root.

Sebagai contoh lain, jika anda log masuk ke sistem Linux sebagai akar dan menukar direktori kerja semasa daripada /root kepada direktori /usr, terdapat dua cara:
[root@localhost ~]# pwd    <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd ./Desktop
[root@localhost Desktop]# pwd
/root/Desktop

Dalam short , laluan mutlak adalah relatif kepada laluan akar /, selagi fail tidak bergerak, laluan mutlaknya adalah malar manakala laluan relatif adalah relatif kepada direktori semasa, apabila program dilaksanakan, direktori semasa Mungkin berubah , jadi laluan relatif kepada fail tidak tetap.

#使用绝对路径
[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

Perbezaan antara laluan mutlak dan laluan relatif

Kita semua tahu bahawa struktur direktori dalam Linux adalah pokok, bermula dari akar ( /) , dan kemudian menjana cawangan. Andaikan kita berada dalam direktori abhishek dan ingin mengakses fail my_scripts.sh, seperti yang ditunjukkan dalam rajah di bawah:

Andaikan kita menggunakan ls

Arahan untuk melihat maklumat fail my_script.sh, kemudian gunakan laluan mutlak:

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视频教程

Atas ialah kandungan terperinci Apakah laluan mutlak Linux dan laluan relatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn