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

21

Je voudrais comprendre ce que signifie vraiment le nom de chemin complet. J'ai un fichier dans mon répertoire personnel appelé my_script. J'ai supposé que le chemin d'accès 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 à ce sujet?

sosytee
la source
Pouvez-vous demander "est-il possible d'écrire une commande qui affichera la liste des fichiers avec leurs noms?" dans une autre nouvelle question ?
Braiam

Réponses:

30

Non, votre hypothèse est fausse. Le chemin d'accès complet pour le my_scriptfichier depuis votre répertoire de base est: /home/your_user_name/my_script. Lorsque vous tapez ./my_scriptterminal, vous essayez d'exécuter le script (s'il est exécutable) et il ne sera exécuté que si votre répertoire de travail actuel l'est /home/your_user_name/. Pour exécuter le script, vous pouvez également utiliser le chemin d'accès complet au fichier qui est, comme je l'ai dit /home/your_user_name/my_script.

On pense qu'un nom de chemin UNIX ressemble et ressemble à une adresse Internet, ce qui entraîne une compatibilité. Le nom de chemin complet du répertoire de travail actuel peut être trouvé dans le terminal à l'aide de 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 nom de chemin complet d'un fichier, vous pouvez utiliser la readlinkcommande. Par exemple, dans votre cas:

cd ~
readlink -f my_script
Radu Rădeanu
la source
+1 readlinkrévèle le chemin réel des liens
logiciels
7

Le nom de chemin complet signifie vraiment le chemin d'accès complet à ce fichier ou dossier à partir du répertoire du système de fichiers /.

Par exemple, le chemin d'accès complet à votre script est:

/home/your_username/my_script

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

/bin/grep

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

hytromo
la source
3

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, ~/pour faire court, contient les fichiers et répertoires de l'utilisateur. Par exemple Images, Musique, Documents, etc. Chacun de ces répertoires est référencé comme /home/USERNAME/DIRECTORYpar exemple Documents se trouve à /home/USERNAME/Documents.

Comme pour les répertoires, les fichiers sont référencés de la même manière, par exemple un fichier nommé my_scriptsitué dans le répertoire personnel de l'utilisateur sosyteepeut être référencé en utilisant le chemin complet /home/sosytee/my_scriptou ~/my_scripten abrégé.

Les fichiers et les répertoires peuvent être référencés / accessibles en utilisant leurs chemins d'accès complets de partout dans le système. De plus, on peut y accéder en utilisant uniquement son nom s'il se trouve dans le même répertoire. Par exemple, si l'utilisateur se trouve ~/lors de l'utilisation du terminal, il peut accéder au my_scriptfichier 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 sur la façon d'accéder aux fichiers à l'aide de la ligne de commande:

  • L'utilisateur est actuellement sur /home/USERNAME/et souhaite utiliser la catcommande sur un fichier situé sous /home/USERNAME/Documentsfoo.txt:

cat Documents/foo.txt

  • L'utilisateur est à l'intérieur ~/Documentset souhaite exécuter un script nommé foo.shannonce localisée ~/Scripts/Foo:

    sh ../Scripts/Foo/foo.sh

    ou

    sh ~/Scripts/Foo/foo.sh

par tous les moyens, ce n'est qu'un résumé.

Plus d'informations

Stef K
la source
2

Le nom de chemin complet est le chemin du répertoire racine (c.-à /-d.). ./my_scriptest le nom du chemin relatif, car le chemin est donné relativement au répertoire courant, qui est désigné par .. Donc, si vous êtes dans votre répertoire personnel, le chemin d'accès complet est s.th. comme /home/sosytee/my_script. Pour votre répertoire personnel, il y a le "raccourci" ~, ce qui signifie que vous pouvez également écrire ~/my_script. Mais cela résoudra bien sûr un chemin différent pour chaque utilisateur.

Pour voir le chemin complet de votre appel d'annuaire actuel pwd.

Nodebody
la source
2

J'ai supposé que le nom de chemin complet était ./my_script

Non, ça ne l'est pas. Ce chemin est relatif. Le point au début indique le répertoire courant:

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

Comme vous pouvez le voir, j'ai changé le répertoire et le my_scriptest introuvable, ce qui signifie que ce ./my_scriptn'est pas un chemin absolu.

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

De Wikipédia :

[...] Un chemin complet ou un 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_scriptne remplit pas la condition que chaque foismy_script que je suis, je peux trouver le fichier , nous devons 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, donc le chemin absolu complet n'aura pas à être donné.

Braiam
la source
0

Ici ... je suppose que vous demandez parce que vous avez installé le serveur Ubuntu sur Windows ...

copiez ce code dans votre explorateur de dossiers sous windows %userprofile%\AppData\Local\Packages

qui vous montrera l'emplacement de votre domicile ... il est caché quelque part sur votre système

Dans ce dossier, double-cliquez sur le dossier de la distribution Linux dont vous souhaitez afficher les fichiers:

  1. Ubuntu: CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
  2. openSUSE Leap 42: 46932SUSE.openSUSELeap42.2_022rs5jcyhyac
  3. SUSE Linux Enterprise Server 1246932SUSE.SUSELinuxEnterpriseServer12SP2_022rs5jcyhyac

Les noms de ces dossiers pourraient légèrement changer à l'avenir. Recherchez simplement un dossier nommé d'après la distribution Linux.

votre maison sera sous LocalState\rootfs\home

La plupart de ces informations proviennent de Comment accéder à vos fichiers Ubuntu Bash dans Windows (et à votre lecteur système Windows dans Bash)

Hammao
la source