web-dev-qa-db-fra.com

Qu'est-ce qu'un nom de chemin complet?

Je voudrais comprendre ce que le nom complet du chemin signifie vraiment. J'ai un fichier dans mon répertoire personnel appelé my_script. J'ai supposé que le nom de chemin complet est ./my_script, ce qui signifie qu'il se trouve dans le dossier racine, mais je ne suis pas sûr. Quelqu'un peut-il m'éclairer s'il vous plaît à ce sujet?

20
sosytee

Non, votre hypothèse est fausse. Le nom de chemin complet du fichier my_script à partir de votre répertoire personnel est: /home/your_user_name/my_script. Lorsque vous tapez ./my_script dans le terminal, vous essayez réellement d’exécuter le script (s’il est exécutable) et il ne sera exécuté que si votre répertoire de travail actuel est /home/your_user_name/. Pour exécuter le script, vous pouvez également utiliser le chemin complet du fichier, comme je l'ai dit, /home/your_user_name/my_script.

On pense qu'un nom de chemin UNIX ressemble à une adresse Internet et se présente sous cette forme, ce qui entraîne une compatibilité. Le nom de chemin complet du répertoire de travail actuel peut être trouvé dans le terminal en utilisant la commande suivante:

pwd

Pour connaître le chemin complet de votre répertoire personnel, vous pouvez utiliser:

echo ~
echo $HOME
echo /home/$USER

Les trois commandes ci-dessus sont équivalentes.

Pour connaître le chemin d'accès complet d'un fichier, vous pouvez utiliser la commande readlink. Par exemple, dans votre cas:

cd ~
readlink -f my_script
27
Radu Rădeanu

Le nom de chemin complet signifie réellement le chemin complet de ce fichier ou dossier à partir du répertoire / du système de fichiers.

Par exemple, le chemin complet de votre script est le suivant:

/home/your_username/my_script

Ou, le chemin d'accès complet à l'exécutable grep est

/bin/grep

En ce qui concerne le ./my_script, le symbole . représente le répertoire en cours. Vous dites donc "Recherchez dans le répertoire en cours un fichier ou un dossier nommé my_script".

7
hytromo

Afin de comprendre le chemin complet, vous devez d'abord connaître le point de départ.

Le répertoire racine / est le point de départ des systèmes d'exploitation basés sur * nix. Il contient tous les autres répertoires du système et de l'utilisateur.

Le répertoire personnel de l'utilisateur, /home/USERNAME/ ou ~/, contient les fichiers et répertoires de l'utilisateur. Par exemple, Images, Musique, Documents, etc. Chacun de ces répertoires est référencé avec /home/USERNAME/DIRECTORY. Par exemple, Documents se trouve à /home/USERNAME/Documents.

Comme avec les répertoires, les fichiers sont référencés de la même manière. Par exemple, un fichier nommé my_script situé dans le répertoire de base de l'utilisateur sosytee peut être référencé à l'aide du chemin complet /home/sosytee/my_script ou ~/my_script.

Les fichiers et les répertoires peuvent être référencés/accédés en utilisant leurs chemins complets de partout dans le système. De plus, on peut y accéder en utilisant uniquement leur nom s'il se trouve dans le même répertoire. Par exemple, si l'utilisateur utilise ~/ lors de l'utilisation du terminal, il peut accéder au fichier my_script en utilisant simplement my_script.

De plus, on peut accéder aux répertoires et aux fichiers en utilisant uniquement leur nom, s'ils sont placés dans sa variable PATH. Vous pouvez voir ce qui est stocké dans PATH en utilisant echo $PATH.

Exemples simples d'accès aux fichiers à l'aide de la ligne de commande:

  • L'utilisateur se trouve actuellement à /home/USERNAME/ et souhaite utiliser la commande cat sur un fichier situé à /home/USERNAME/Documents nommé foo.txt:

cat Documents/foo.txt

  • L'utilisateur est à l'intérieur de ~/Documents et souhaite exécuter un script nommé foo.sh situé dans l'annonce ~/Scripts/Foo:

    sh ../Scripts/Foo/foo.sh

    ou

    sh ~/Scripts/Foo/foo.sh

bien sûr, ceci n’est qu’un résumé.

Plus d'informations

3
Stef K

Le nom de chemin complet est le chemin du répertoire racine (c'est-à-dire, /). ./my_script est le nom du chemin relatif, car il est donné relativement au répertoire en cours, indiqué par .. Donc, si vous êtes dans votre répertoire personnel, le chemin complet est le même. comme /home/sosytee/my_script. Pour votre répertoire personnel, il existe un "raccourci" ~, ce qui signifie que vous pouvez également écrire ~/my_script. Mais cela va bien sûr résoudre un chemin différent pour chaque utilisateur.

Pour voir le chemin complet de votre répertoire actuel, appelez pwd.

2
Nodebody

J'ai supposé que le chemin complet est ./my_script

Non ce n'est pas. Ce chemin est relatif. Le point au début indique le répertoire en cours:

$ ls ./my_script
my_script
$ cd ..
$ ls ./my_script
ls: cannot access ./my_script: No such file or directory

Comme vous pouvez le constater, j’ai changé de répertoire et le my_script n’a pas été trouvé, ce qui signifie que ./my_script n’est pas un chemin absolu.

J'ai supposé que le nom de chemin complet est ./my_script, ce qui signifie qu'il se trouve dans le dossier racine, mais je ne suis pas sûr.

De la Wikipedia :

[...] Un chemin complet ou chemin absolu est un chemin qui pointe vers le même emplacement sur un système de fichiers, quel que soit le répertoire de travail ou les chemins combinés. .

Puisque le ./my_script ne remplit pas la condition que chaque fois que je suis capable de trouver le fichier my_script, nous devrions en déduire qu'il s'agit d'un chemin relatif.

Un chemin relatif est un chemin relatif au répertoire de travail de l'utilisateur ou de l'application. Il n'est donc pas nécessaire d'indiquer le chemin absolu complet.

2
Braiam