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

Verwendung von / bei Verwendung von CD

Dies ist das Standardverhalten von Unix.

Der / am Anfang des Pfads steht für das Stammverzeichnis der Festplatte (oder die Start-/oberste Ebene des Dateisystembaums). Als Documents ist nicht von der Wurzel entfernt, /Documents kann nicht gefunden werden.

/Users befindet sich außerhalb des Stammverzeichnisses, sodass dieses Problem nicht auftritt.

Sie könnten cd /Users/lukas/Documents verwenden um zu diesem Pfad zu wechseln.

Alternativ können Sie die relative Adressierung verwenden. Unix-basierte Dateisysteme haben 2 spezielle Verzeichnisse:

  • . was "dieses Verzeichnis" bedeutet,
  • .. also das übergeordnete Verzeichnis.

Wenn Sie in /Users/lukas sind , cd ./Documents würde Sie an die richtige Stelle bringen.

Nehmen wir an, Sie waren in /Users/Lukas/Documents und wollte zu /Users/Janes/Documents , könnten Sie den Befehl cd ../../Janes/Documents eingeben - mit .. würde Sie eine Ebene zurückbringen - Sie würden es also zweimal tun, bevor Sie in den neuen relativen Pfad gehen.


/Users/lukas ist ein "absoluter" Pfad. Die führende / stellt das Stammverzeichnis Ihres Dateisystems dar.

lukas ist ein "relativer" Pfad. Da es nicht an der Wurzel verankert ist, bedeutet es "Suche im aktuellen Verzeichnis". Es sei denn, das aktuelle Verzeichnis ist /Users (oder ein anderes Verzeichnis mit einem lukas darin), wird dies fehlschlagen.

Sehen wir uns also Ihre Beispiele an, vorausgesetzt, Sie befinden sich in /Users/lukas :

$ cd Documents/
/Users/lukas/Documents

Relativer Pfad angegeben => Wechsel in das Verzeichnis "Documents" innerhalb von /Users/lukas .

$ cd /Documents
-bash: cd: /Documents: No such file or directory

Absoluter Pfad angegeben => in das Verzeichnis /Documents wechseln .

$ pwd
/

Dies zeigt, dass Sie jetzt das Arbeitsverzeichnis in das Stammverzeichnis / geändert haben (obwohl die cd Befehl dazu wurde nicht angezeigt).

$ cd Users
/Users

Relativer Pfad angegeben => in das Verzeichnis "Benutzer" wechseln, das sich in / befindet .

$ cd /Users
/Users

Absoluter Pfad angegeben => in das Verzeichnis /Users wechseln .

Der Schlüssel ist jedes Mal das vorangestellte / . Damit ist der Weg absolut. Ohne sie ist der Pfad relativ. Diese Regel ist eindeutig, da alle absoluten Pfade mit / beginnen (weil das Stammverzeichnis immer / heißt ).

Hier ist etwas Pseudocode, der diesen Algorithmus grob beschreibt:

MakePathAbsolute(path):
   if <path> starts with '/'
      return <path>
   else
      return <current directory>/<path>

Das Argument übergeben Sie an cd geht durch diesen Algorithmus; Das Verzeichnis, in das Sie wechseln, ist der Pfad, den der Algorithmus zurückgibt.

Weiterführende Literatur:

  • Tutorial zu Unix-Dateien und -Verzeichnissen
    Joseph L. Zachary
    "Einführung in die wissenschaftliche Programmierung"

Linux
  1. [Linux] :So schließen Sie das Verzeichnis aus, wenn Sie den Shell-Befehl „tar“ verwenden

  2. Wann verwendet man Nohup?

  3. Warum kann ich Cd nicht in einem Bash-Skript verwenden?

  4. Schnelle Möglichkeit, einen Verzeichnispfad beim Aufrufen von Mv einzuschließen?

  5. Verwendung von –exclude mit dem Du-Befehl?

So verwenden Sie Rsync

Linux:Fügen Sie PATH ein Verzeichnis hinzu

Wie verwende ich / (Verzeichnistrennzeichen) sowohl unter Linux als auch unter Windows in Python?

Wie kann ich Bazel dazu bringen, beim Erstellen externen Speicher zu verwenden?

Erstellen eines Programms in bin

Linux-Befehl gefunden, aber bei Verwendung von sudo nicht gefunden