Was sind absolute und relative Pfade unter Linux?

青灯夜游
Freigeben: 2023-01-31 10:00:45
Original
8228 Leute haben es durchsucht

Unter Linux bezieht sich der absolute Pfad auf den Dateipfad, der immer im Stammverzeichnis „/“ beginnt, und der relative Pfad bezieht sich auf den Dateipfad, der im aktuellen Arbeitsverzeichnis beginnt. Der absolute Pfad ist relativ zum Stammpfad „/“. Solange die Datei nicht verschoben wird, ist ihr absoluter Pfad relativ zum aktuellen Verzeichnis , daher sind relative Pfade zu Dateien nicht festgelegt.

Was sind absolute und relative Pfade unter Linux?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Was ist ein relativer Pfad unter Linux?

Pfad ist eines der grundlegendsten Konzepte unter Linux, das jeder Linux-Benutzer kennen muss.

Unter Linux bezieht sich ein Pfad darauf, wie auf Dateien und Verzeichnisse verwiesen wird; er gibt den Speicherort einer Datei oder eines Verzeichnisses in der Linux-Verzeichnisstruktur an und besteht aus einem Namen gefolgt von einem Schrägstrich. Das bloße Verständnis des Pfads einer Datei bezieht sich auf den Speicherort, an dem die Datei gespeichert ist. Beispielsweise stellt /home/cat den Speicherort der Cat-Datei dar. Solange wir dem Linux-System den genauen Speicherort einer Datei mitteilen, kann es die Datei finden.

Als Systembenutzer werden Pfade verwendet, wenn Sie auf eine Datei oder ein Verzeichnis zugreifen möchten oder wenn Sie den Speicherort einer Datei oder eines Verzeichnisses für einen Befehl oder ein Skript angeben müssen.

cat /home/abhishek/scripts/my_script.sh
Nach dem Login kopieren

Denken Sie daran, wenn der Pfad mit einem Schrägstrich „/“ beginnt, stellt der erste Schrägstrich die Wurzel dar und die übrigen Schrägstriche im Pfad sind nur Trennzeichen. Anfänger verwechseln oft den Root-Schrägstrich und den Trenn-Schrägstrich.

Was sind absolute und relative Pfade unter Linux?

Im obigen Bild beginnt der erste Pfad mit dem Stammpfad (/) und der zweite Pfad beginnt nicht mit /. Beide Schreibweisen sind korrekt, die erste ist ein absoluter Pfad und die zweite ist ein relativer Pfad.

Was sind absolute Pfade und relative Pfade?

Geben Sie den Speicherort einer Datei an. Es gibt zwei Methoden, nämlich die Verwendung absoluter Pfade und relativer Pfade.

Wir wissen, dass alle Dateien (Verzeichnisse) im Linux-System in einer umgekehrten Baumstruktur organisiert sind, beginnend mit dem Stammverzeichnis „/“, wie in Abbildung 1 dargestellt.

Was sind absolute und relative Pfade unter Linux?
Abbildung 1 Strukturdiagramm der Linux-Systemdateiorganisation

Absoluter Pfad

Der absolute Pfad muss im Stammverzeichnis / beginnen, zum Beispiel:

/home/abhishek/scripts/my_scripts.sh
Nach dem Login kopieren

Verwenden Sie den absoluten Pfad, um den Speicherort der Bin-Datei anzugeben. Der Pfad sollte als /usr/bin geschrieben werden und der Testcode lautet wie folgt:

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

Sie können sehen, dass, wenn Sie nur einen Dateinamen an das Linux-System übergeben, die angegebene Datei nicht gefunden werden kann Wenn der Pfad der bin-Datei an das Linux-System übergeben wird, kann er erfolgreich gefunden werden.

Relative Pfade

unterscheiden sich von absoluten Pfaden, die nicht im Stammverzeichnis / beginnen, sondern im aktuellen Arbeitsverzeichnis. Bei der Verwendung relativer Pfade zur Angabe des Speicherorts einer Datei werden häufig die beiden zuvor erwähnten speziellen Verzeichnisse verwendet, nämlich das aktuelle Verzeichnis (dargestellt durch .) und das übergeordnete Verzeichnis (dargestellt durch ..).

Wenn wir uns beispielsweise als Root beim Linux-System anmelden, ist das aktuelle Arbeitsverzeichnis standardmäßig /root. Wenn wir das aktuelle Arbeitsverzeichnis an das Root-Unterverzeichnis Desktop anpassen müssen, können wir natürlich den absoluten Pfad verwenden Der Beispielcode lautet wie folgt:

[root@localhost ~]# pwd     <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd /root/Desktop
[root@localhost Desktop]# pwd
/root/Desktop
Nach dem Login kopieren

Sie können sehen, dass wir durch die Verwendung des absoluten Pfads den aktuellen Arbeitspfad erfolgreich geändert haben. Aber ansonsten ist es einfacher, relative Pfade zu verwenden. Da es sich derzeit unter /root befindet und sich Desktop im aktuellen Verzeichnis befindet, gilt also:

[root@localhost ~]# pwd    <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd ./Desktop
[root@localhost Desktop]# pwd
/root/Desktop
Nach dem Login kopieren

In diesem Code stellt ./Desktop den Pfad der Destop-Datei relativ zu /root dar.

Um ein weiteres Beispiel zu nennen: Wenn Sie sich als Root beim Linux-System anmelden und das aktuelle Arbeitsverzeichnis von /root in das Verzeichnis /usr konvertieren, gibt es zwei Möglichkeiten:

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

Kurz gesagt, der absolute Pfad ist relativ zum Stammpfad / Solange die Datei nicht verschoben wird, ist ihr absoluter Pfad konstant. Während das Programm ausgeführt wird, kann sich das aktuelle Verzeichnis ändern, sodass dies der relative Pfad der Datei nicht ist Behoben.

Unterschied zwischen absolutem und relativem Pfad

Wir alle wissen, dass die Verzeichnisstruktur in Linux ein Baum ist, der beim Stammverzeichnis (/) beginnt und dann Zweige generiert.

Angenommen, wir befinden uns jetzt im Verzeichnis abhishek und möchten auf die Datei my_scripts.sh zugreifen, wie in der folgenden Abbildung dargestellt. Die beiden Pfade werden dargestellt:

Angenommen, wir verwenden den Befehl ls , um die Datei anzuzeigen Informationen von my_script.sh, dann verwenden Sie den absoluten Pfad:

ls -l /home/abhishek/scripts/my_script.sh
Nach dem Login kopieren

然后,相对路径:

ls -l scripts/my_script.sh
Nach dem Login kopieren

那么,以上两种方式,除了文件路径不一样以外,其他的完全一样:

注:在Linux中,文件名区分大小写。可以有大写、小写、数字、点、中划线、下划线以及除了斜杠(/)之外的大多数字符。斜杠(/)作为保留字符,用于根目录和用于分割路径中的目录。

使用带有 . 和 .. 目录的相对路径

有两种特殊的相对路径:

  • .(一个点):表示路径中的当前路径;
  • ..(两个点):表示父目录,即上一级目录。

如下图,我们要从 abhishek 目录中,到 prakash 目录中去。

切换目录,使用 cd 命令。如果使用绝对路径,可以这样:

cd /home/prakash
Nach dem Login kopieren

使用相对路径的话 ,需要用到特殊的相对路径 .. :

cd ../prakash
Nach dem Login kopieren

为什么要使用 .. 呢?因为相对路径要从当前目录开始,我们需要告诉 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视频教程

Das obige ist der detaillierte Inhalt vonWas sind absolute und relative Pfade unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!