Ich möchte einen Befehl mit absolutem Pfad aus einem beliebigen Ordner ausführen und das Skript ausführen lassen.
Wenn ich versuche, mit absolutem Pfad einzulaufen, erhalte ich eine Fehlermeldung:
/test/test_bash_script.sh
-bash: /test/test_bash_script.sh: No such file or directory
Datei /test/test_bash_script.sh
existiert nicht und kann daher nicht ausgeführt werden.
-
Ein absoluter Pfad ist definiert als die Angabe des Speicherorts einer Datei oder eines Verzeichnisses aus dem Stammverzeichnis (
/
). -
/test
kann kein absoluter Pfad sein wie das Verzeichnis/test
existiert nicht (es ist ein Unterverzeichnis Ihres Home-Verzeichnisses).
Sie haben zwei Möglichkeiten:
-
Verwenden Sie den korrekten absoluten Pfad zum Skript:
/Users/danylo.volokh/test/test_bash_script.sh
-
Verwenden Sie den Pfad basierend auf Ihrem Home-Verzeichnis:
~/test/test_bash_script.sh
Was ist ein absoluter Pfad?
Ein absoluter Pfad ist definiert als die Angabe des Speicherorts einer Datei oder eines Verzeichnisses aus dem Stammverzeichnis (/
).
Quelle Absoluter Pfad vs. relativer Pfad in Linux/Unix
Da Schrägstriche immer Namensbestandteile trennen, wird angenommen, dass das namenlose "ROOT"-Verzeichnis den Pfadnamen beginnt, wenn ein Pfadname mit einem Schrägstrich beginnt. Das ROOT-Verzeichnis hat keinen Namen. Es ist die Wurzel des gesamten Unix-Dateisystembaums.
Ein Pfadname, der mit einem Schrägstrich beginnt, wird als absoluter Pfadname bezeichnet, da er immer im ROOT beginnt.
Da es schwierig ist, über ein Verzeichnis zu sprechen, das keinen Namen hat, verwenden wir normalerweise (fälschlicherweise) den Namen "/" (Schrägstrich) für das ROOT-Verzeichnis Komponenten. Verstehen Sie, wenn wir "/" für ROOT verwenden, meinen wir wirklich "das namenlose ROOT-Verzeichnis, das links vom Schrägstrich steht", nicht den Schrägstrich selbst.
Quell-Unix/Linux-Pfadnamen (absolut, relativ, Punkt, Punkt Punkt)
Der absolute Pfad ist /Users/danylo.volokh/test/test_bash_script.sh
, nicht /test/test_bash_script.sh
. Da hat Bash recht.