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

Wann sollte ich einen abschließenden Schrägstrich in einem Verzeichnis verwenden?

Für diese Frage gibt es hier bereits Antworten :der Schrägstrich (/) nach einem Verzeichnisnamen bei Shell-Befehlen

(2 Antworten)
Vor 3 Jahren geschlossen.

Mögliches Duplikat:
Wie Linux mehrere Pfadtrennzeichen handhabt (/home////Benutzername///Datei)

Die meisten Befehle, die ich unter Linux verwende, verhalten sich genau gleich, unabhängig davon, ob ich den nachgestellten Schrägstrich / einfüge Zeichen am Ende eines Verzeichnisnamens oder nicht.

Zum Beispiel:

ls /home/cklein
ls /home/cklein/

cp foo bar
cp foo/ bar/

Wann spielt dieser abschließende Schrägstrich eine Rolle? Was ist die semantische Bedeutung des abschließenden Schrägstrichs?

Akzeptierte Antwort:

Ein gutes Beispiel ist das Verschieben einer Datei in ein Verzeichnis:

mv some_file foo

vs.

mv some_file foo/

Wenn foo nicht existiert, wird die erste some_file umbenennen zu foo , und nicht die beabsichtigte foo/some_file; der zweite wird sich beschweren, was Sie wollen.

Wenn foo existiert, aber kein Verzeichnis ist, kann das erste den foo vermasseln Datei; wieder wird der zweite sich beschweren.

cp weist ähnliche Probleme auf.

Bei der Arbeit an einigen alten Versionen von SunOS habe ich mir angewöhnt, /. anzuhängen , weil das System einen abschließenden / tatsächlich ignoriert hat auf einem Dateinamen; zum Beispiel /etc/motd/ würde eher auf die Datei verweisen als auf einen Fehler. Spätere Versionen von SunOS / Solaris scheinen dieses Problem nicht mehr zu haben.


Linux
  1. Linux – Wann sollte ich keinen -9 A-Prozess beenden?

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

  3. Wann Sie einen dedizierten Server verwenden sollten

  4. So verwenden Sie CMAKE_INSTALL_PREFIX

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

So verwenden Sie Rsync

Welchen Grafiktreiber sollte ich auf einem Asus N43 verwenden?

Wann sollte ich TCP_NODELAY und wann TCP_CORK verwenden?

Soll ich beim Kopieren von Ordnern einen abschließenden Schrägstrich nach Quelle und Ziel setzen?

Wie benutzt man dos2unix?

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?