GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Absoluter vs. relativer Pfad in Linux:Was ist der Unterschied?

Pfad ist eines der wichtigsten Konzepte in Linux und das muss jeder Linux-Benutzer wissen.

Mit einem Pfad verweisen Sie auf Dateien und Verzeichnisse. Es gibt den Speicherort einer Datei oder eines Verzeichnisses in der Linux-Verzeichnisstruktur an. Es besteht aus einem Namen und einer Slash-Syntax.

/home/abhishek/scripts

Als Benutzer müssen Sie den Pfad verwenden, wenn Sie auf eine bestimmte Datei oder ein bestimmtes Verzeichnis zugreifen möchten oder wenn Sie einem Befehl oder Skript den Speicherort einer Datei oder eines Verzeichnisses mitteilen müssen.

cat /home/abhishek/scripts/my_script.sh

Denken Sie daran, wenn der Pfad mit einem Schrägstrich „/“ beginnt, bezeichnet der erste Schrägstrich die Wurzel. Die restlichen Schrägstriche im Pfad sind nur Trennzeichen. Anfänger werden oft zwischen dem Root-Slash und den Trenn-Slashes verwechselt.

Im obigen Diagramm haben Sie den ersten Pfad, der mit einem Root-Slash beginnt. Es gibt einen anderen Pfad, der nicht mit / beginnt (d. h. root).

Beide sind richtig. Der erste ist ein absoluter Pfad und der zweite ein relativer Pfad. Schauen wir sie uns genauer an.

Absoluter und relativer Pfad in Linux

Der absolute Pfad beginnt immer im Stammverzeichnis (/). Beispiel:/home/abhishek/scripts/my_scripts.sh.

Ein relativer Pfad beginnt im aktuellen Verzeichnis. Zum Beispiel, wenn Sie sich im Verzeichnis /home befinden und auf my_scripts.sh zugreifen möchten Datei können Sie abhishek/scripts/my_scripts.sh verwenden .

Den Unterschied zwischen absoluten und relativen Pfaden verstehen

Sie wissen, dass die Verzeichnisstruktur in Linux der Wurzel eines Baums ähnelt. Alles beginnt im Stammverzeichnis und verzweigt sich von dort aus.

Stellen Sie sich nun vor, Sie befinden sich im Verzeichnis abhishek und Sie möchten auf my_scripts.sh zugreifen Datei.

Der absolute Pfad wird durch die grün gepunktete Linie und der relative Pfad durch die gelb gepunktete Linie dargestellt.

Angenommen, Sie möchten die Eigenschaften der Datei my_script.sh sehen mit dem ls-Befehl.

Sie können den absoluten Pfad verwenden, der mit dem Stammverzeichnis beginnt (/):

ls -l /home/abhishek/scripts/my_script.sh

Oder Sie können den relativen Pfad verwenden (der im aktuellen Verzeichnis beginnt, nicht /):

ls -l scripts/my_script.sh

Beide Befehle liefern dasselbe Ergebnis (mit Ausnahme des Pfads der Datei).

In Linux wird bei Dateinamen zwischen Groß- und Kleinschreibung unterschieden und es können Großbuchstaben, Kleinbuchstaben, Zahlen, Punkte, Bindestriche, Unterstriche und die meisten Symbole außer dem Schrägstrich (/). Der Schrägstrich (/) ist für root und zum Trennen von Verzeichnissen im Pfad reserviert.

Verwenden eines relativen Pfads mit . und .. Verzeichnisse

Lassen Sie mich weitere Beispiele zeigen, um den Unterschied zwischen absolutem Pfad und relativem Pfad zu erklären. Aber vorher sollten Sie zwei spezielle relative Pfade kennen:

  • . ( einzelner Punkt) bezeichnet das aktuelle Verzeichnis im Pfad.
  • .. (zwei Punkte) bezeichnet das übergeordnete Verzeichnis, also eine Ebene darüber.

Die Dinge werden gleich klar sein. Sehen Sie sich das Szenario an. In diesem möchten Sie in das Verzeichnis prakash gehen aus dem Verzeichnis abhishek .

Sie können den cd-Befehl verwenden, um Verzeichnisse zu wechseln. Der absolute Pfad ist hier ziemlich offensichtlich:

cd /home/prakash

Um den relativen Pfad zu verwenden, müssen Sie den speziellen relativen Pfad verwenden:

cd ../prakash

Warum verwenden ..? Weil ein relativer Pfad eine Richtung vom aktuellen Verzeichnis erfordert und Sie dem Befehl cd mitteilen müssen, dass er eine Ebene nach oben gehen soll, bevor er nach unten geht. Der .. bringt Sie zu /home Verzeichnis und von dort gehen Sie zum prakash Verzeichnis.

Ich hoffe, die Dinge sind jetzt viel klarer.

Der absolute Pfad beginnt immer mit root (/) und bleibt unabhängig von Ihrem aktuellen Standort gleich. Der relative Pfad hängt von Ihrem aktuellen Standort ab.

Welchen sollten Sie verwenden? Relativer Pfad oder absoluter Pfad?

Ehrlich gesagt gibt es auf diese Frage keine eindeutige Antwort. Es kommt wirklich auf die Situation an.

Wenn Sie sich tief in der Verzeichnishierarchie befinden und eine Ebene nach oben oder unten wechseln müssen, ist die Verwendung des relativen Pfads einfacher.

Angenommen, Sie befinden sich im Verzeichnis /home/username/programming/project/interface/src/header und müssen auf etwas im Verzeichnis /home/username/programming/project/interface/bin zugreifen. Die Verwendung des relativen Pfads würde Ihnen das Eintippen all dieser langen Verzeichnisnamen ersparen, und Sie können hier einfach ../../bin verwenden.

Aber wenn Sie auf etwas im Verzeichnis /usr/bin vom Verzeichnis /home/username/programming/project/interface/src/header aus zugreifen müssen, verwenden Sie etwas wie ../../../../../. ./usr/bin ist keine gute Idee. Die Verwendung des absoluten Pfades ist in diesem Fall sinnvoll.

Ein anderer Fall ist die Verwendung der Pfade in Skripten oder Programmen. Wenn Sie sich der Position sicher sind, verwenden Sie den absoluten Pfad. Wenn Ihr Projekt mehrere Ordner hat und Sie zwischen Verzeichnissen wechseln müssen, können Sie hier den relativen Pfad verwenden, da Sie nicht wissen, wohin der Endbenutzer alle Projektdateien kopieren wird, in das Home-Verzeichnis oder in ein Entwicklungsverzeichnis.

Mit anderen Worten, Sie sollten beide Methoden kennen und diejenige verwenden, die basierend auf Ihrem Szenario einfacher ist.

Ich hoffe, Sie haben jetzt ein besseres Verständnis für Pfade und Navigation in Linux. Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie bitte einen Kommentar.


Linux
  1. Was ist der Unterschied zwischen dem Befehl „locate“ und „find“ in Linux?

  2. Unterschied zwischen absoluten und relativen Pfaden in Linux

  3. Was ist der Unterschied zwischen „locate“ und „find“ in Linux?

  4. Was ist das Äquivalent von Active Directory unter Linux

  5. Was ist der Unterschied zwischen Unix, Linux, BSD und GNU?

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen Rsync und BTRFS unter Linux?

iptables vs. nftables:Was ist der Unterschied?

Absoluter vs. relativer Pfad in Linux:Was ist der Unterschied?

Was ist der Kill-Befehl in Linux?

Linux:Fügen Sie PATH ein Verzeichnis hinzu