GNU/Linux >> Tutoriels Linux >  >> Linux

Chemin absolu ou relatif sous Linux :quelle est la différence ?

Le chemin est l'un des concepts les plus essentiels de Linux et c'est quelque chose que chaque utilisateur de Linux doit savoir.

Un chemin est la façon dont vous vous référez aux fichiers et aux répertoires. Il donne l'emplacement d'un fichier ou d'un répertoire dans la structure de répertoire Linux. Il est composé d'un nom et d'une syntaxe de barre oblique.

/home/abhishek/scripts

En tant qu'utilisateur, vous devrez utiliser le chemin lorsque vous souhaitez accéder à un certain fichier ou répertoire ou lorsque vous devez donner l'emplacement d'un fichier ou d'un répertoire à une commande ou un script.

cat /home/abhishek/scripts/my_script.sh

N'oubliez pas que si le chemin commence par une barre oblique "/", la première barre oblique indique la racine. Le reste des barres obliques dans le chemin ne sont que des séparateurs. Les débutants confondent souvent la barre oblique racine et les barres obliques de séparation.

Dans le diagramme ci-dessus, vous avez le premier chemin qui commence par une barre oblique racine. Il existe un autre chemin qui ne commence pas par / (c'est-à-dire racine).

Les deux sont corrects. Le premier est le chemin absolu et le second est le chemin relatif. Examinons-les en détail.

Chemin absolu et relatif sous Linux

Le chemin absolu commence toujours à partir du répertoire racine (/). Par exemple, /home/abhishek/scripts/my_scripts.sh.

Un chemin relatif commence à partir du répertoire courant. Par exemple, si vous êtes dans le répertoire /home et que vous souhaitez accéder au my_scripts.sh fichier, vous pouvez utiliser abhishek/scripts/my_scripts.sh .

Comprendre la différence entre les chemins absolus et relatifs

Vous savez que la structure des répertoires sous Linux ressemble à la racine d'un arbre. Tout commence à la racine et se ramifie à partir de là.

Imaginez maintenant que vous êtes dans le répertoire abhishek et vous voulez accéder au my_scripts.sh fichier.

Le chemin absolu est représenté par la ligne pointillée verte et le chemin relatif est représenté par les lignes pointillées jaunes.

Supposons que vous vouliez voir les propriétés du fichier my_script.sh en utilisant la commande ls.

Vous pouvez utiliser le chemin absolu qui commence par le répertoire racine (/) :

ls -l /home/abhishek/scripts/my_script.sh

Ou, vous pouvez utiliser le chemin relatif (qui commence à partir du répertoire courant, pas /) :

ls -l scripts/my_script.sh

Les deux commandes donneront le même résultat (sauf pour le chemin du fichier).

Sous Linux, les noms de fichiers sont sensibles à la casse et peuvent contenir des majuscules, des minuscules, des chiffres, des points, des tirets, des traits de soulignement et la plupart des symboles sauf la barre oblique (/). La barre oblique (/) est réservée à la racine et à la séparation des répertoires dans le chemin.

Utilisation du chemin relatif avec . et .. répertoires

Permettez-moi de montrer un autre exemple pour expliquer la différence entre le chemin absolu et le chemin relatif. Mais avant cela, vous devez connaître deux chemins relatifs spéciaux :

  • . (point unique) indique le répertoire actuel dans le chemin.
  • .. (deux points) indique le répertoire parent, c'est-à-dire un niveau au-dessus.

Les choses seront claires dans un instant. Jetez un œil au scénario. Dans celui-ci, vous souhaitez vous rendre dans le répertoire prakash depuis le répertoire abhishek .

Vous pouvez utiliser la commande cd pour changer de répertoire. Le chemin absolu est assez évident ici :

cd /home/prakash

Pour utiliser le chemin relatif, vous devrez utiliser le chemin relatif spécial :

cd ../prakash

Pourquoi utiliser ..? Parce qu'un chemin relatif nécessite une direction à partir du répertoire actuel et que vous devez indiquer à la commande cd de monter d'un niveau avant de descendre. Le .. vous amène au /home répertoire et de là vous allez dans le prakash répertoire.

J'espère que les choses sont beaucoup plus claires maintenant.

Le chemin absolu commence toujours par la racine (/) et restera le même quel que soit votre emplacement actuel. Le chemin relatif dépend de votre emplacement actuel.

Lequel devez-vous utiliser ? Chemin relatif ou chemin absolu ?

Pour être honnête, il n'y a pas de réponse directe à cette question. Cela dépend vraiment de la situation.

Si vous êtes en profondeur dans la hiérarchie des répertoires et que vous devez monter ou descendre d'un niveau, l'utilisation du chemin relatif sera plus facile.

Supposons que vous êtes dans le répertoire /home/username/programming/project/interface/src/header et que vous devez accéder à quelque chose dans le répertoire /home/username/programming/project/interface/bin. L'utilisation du chemin relatif vous évitera de taper tous ces longs noms de répertoire et vous pouvez simplement utiliser ../../bin ici.

Mais si vous devez accéder à quelque chose dans le répertoire /usr/bin à partir du répertoire /home/username/programming/project/interface/src/header, utilisez quelque chose comme ../../../../../. ./usr/bin ne sera pas une chose sage à faire. L'utilisation du chemin absolu est la chose sensée à faire dans ce cas.

Un autre cas consiste à utiliser les chemins dans des scripts ou des programmes. Lorsque vous êtes sûr de l'emplacement, utilisez le chemin absolu. Si votre projet comporte plusieurs dossiers et que vous devez basculer entre les répertoires, vous pouvez utiliser le chemin relatif ici car vous ne savez pas où l'utilisateur final copiera tous les fichiers du projet, dans le répertoire personnel ou dans un répertoire de développement.

En d'autres termes, vous devez connaître les deux méthodes et utiliser celle qui sera la plus simple en fonction de votre scénario.

J'espère que vous avez maintenant une meilleure compréhension du chemin et de la navigation sous Linux. Si vous avez des questions ou des suggestions, veuillez laisser un commentaire.


Linux
  1. Quelle est la différence entre la commande locate et find sous Linux

  2. Différence entre les chemins absolus et relatifs sous Linux

  3. Répertorier les fichiers de manière récursive dans la CLI Linux avec un chemin relatif au répertoire actuel

  4. Quelle est la différence entre "localiser" et "trouver" sous Linux ?

  5. Quelles devraient être les autorisations idéales pour le répertoire personnel sous Linux

Quelle est la différence entre Linux et Unix ?

Quelle est la différence entre Rsync et BTRFS sous Linux ?

iptables vs nftables :quelle est la différence ?

Chemin absolu ou relatif sous Linux :quelle est la différence ?

Qu'est-ce que la commande kill sous Linux ?

Linux :ajouter un répertoire à PATH