Je veux exécuter une commande avec un chemin absolu à partir de n'importe quel dossier et obtenir le script à exécuter.
Si j'essaie de courir avec un chemin absolu, j'obtiens une erreur :
/test/test_bash_script.sh
-bash: /test/test_bash_script.sh: No such file or directory
Fichier /test/test_bash_script.sh
n'existe pas et ne peut donc pas être exécuté.
-
Un chemin absolu est défini comme la spécification de l'emplacement d'un fichier ou d'un répertoire à partir du répertoire racine (
/
). -
/test
ne peut pas être un chemin absolu car le répertoire/test
n'existe pas (il s'agit d'un sous-répertoire de votre répertoire personnel).
Vous avez deux choix :
-
Utilisez le chemin d'accès absolu correct au script :
/Users/danylo.volokh/test/test_bash_script.sh
-
Utilisez le chemin basé sur votre répertoire personnel :
~/test/test_bash_script.sh
Qu'est-ce qu'un chemin absolu ?
Un chemin absolu est défini comme la spécification de l'emplacement d'un fichier ou d'un répertoire à partir du répertoire racine (
/
).
Source Chemin absolu vs chemin relatif sous Linux/Unix
Étant donné que les barres obliques séparent toujours les composants du nom, si un nom de chemin commence par une barre oblique, le répertoire "ROOT" sans nom est supposé commencer le nom de chemin. Le répertoire ROOT n'a pas de nom. C'est la racine de toute l'arborescence du système de fichiers Unix.
Un chemin d'accès commençant par une barre oblique est appelé un chemin d'accès absolu, car il commence toujours à la racine.
Parce qu'il est difficile de parler d'un répertoire qui n'a pas de nom, nous utilisons généralement (incorrectement) le nom "/" (barre oblique) pour le répertoire ROOT.Ceci est faux, car les composants de nom d'un chemin d'accès ne peuvent pas contenir des slashs et des slashs séparent le nom Composants. Comprenez que lorsque nous utilisons "/" pour ROOT, nous voulons vraiment dire "le répertoire ROOT sans nom qui se trouve à gauche de la barre oblique", et non la barre oblique elle-même.
Chemins source Unix/Linux (absolu, relatif, point, point point)
Le chemin absolu est /Users/danylo.volokh/test/test_bash_script.sh
, pas /test/test_bash_script.sh
. Bash a raison alors.