Maison  >  Article  >  Tutoriel système  >  Quelle est la différence entre les chemins absolus et les chemins relatifs sous Linux ?

Quelle est la différence entre les chemins absolus et les chemins relatifs sous Linux ?

WBOY
WBOYavant
2024-02-10 20:03:20730parcourir

Le chemin est un concept très important dans le système Linux et chaque utilisateur Linux doit le comprendre.

Il fait référence à l'emplacement des fichiers et des répertoires dans la structure de répertoires Linux, composée de noms et de barres obliques. Grâce aux chemins, nous pouvons trouver rapidement l’emplacement des fichiers ou des répertoires.

/home/abhishek/scripts

En tant qu'utilisateur système, les chemins sont utilisés lorsque vous souhaitez accéder à un fichier ou un répertoire, ou lorsque vous devez spécifier l'emplacement d'un fichier ou d'un répertoire pour 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 représente la racine et les barres obliques restantes du chemin ne sont que des séparateurs. Les débutants confondent souvent la barre oblique racine et la barre oblique séparateur .

Linux 中的绝对路径和相对路径,有什么区别?

Dans l'image ci-dessus, le premier chemin commence par le chemin racine (/) et le deuxième chemin ne commence pas par /. Ces deux manières d’écrire sont correctes, la première est un chemin absolu et la seconde est un chemin relatif.

Chemins absolus et chemins relatifs sous Linux

Les chemins absolus partent toujours du répertoire racine (/), tel que :

/home/abhishek/scripts/my_scripts.sh

Les chemins relatifs partent du répertoire actuel. Par exemple, si vous êtes dans le répertoire /home et que vous souhaitez accéder au fichier my_script.sh, le chemin d'accès doit être :

abhishek/scripts/my_scripts.sh

Comprendre la différence entre les chemins absolus et les chemins relatifs

Nous savons tous que la structure des répertoires sous Linux est une arborescence, commençant par la racine (/) puis générant des branches.

Supposons que nous soyons maintenant dans le répertoire abhishek et que nous souhaitions accéder au fichier my_scripts.sh, comme le montre la figure suivante montrant les deux chemins :

Linux 中的绝对路径和相对路径,有什么区别?

Supposons que nous utilisions la commande ls pour afficher les informations du fichier my_script.sh, puis que nous utilisions le chemin absolu :

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

Ensuite, le chemin relatif :

ls -l scripts/my_script.sh

Ensuite, à l'exception des différents chemins de fichiers, les deux méthodes ci-dessus sont exactement les mêmes :

Linux 中的绝对路径和相对路径,有什么区别?

Remarque : Sous Linux, les noms de fichiers sont sensibles à la casse. Peut contenir des majuscules, des minuscules, des chiffres, des points, des tirets, des soulignements et la plupart des caractères à l'exception de la barre oblique (/). La barre oblique (/) est un caractère réservé utilisé pour le répertoire racine et pour diviser les répertoires dans un chemin.

Utilisez des chemins relatifs avec les répertoires . et ..

**
**

Il existe deux chemins relatifs spéciaux :

  • .**** (un point) : représente le chemin actuel dans le chemin
  • ;
  • ..**** (deux points)  : Indique le répertoire parent, c'est-à-dire le répertoire de niveau supérieur.

Comme indiqué ci-dessous, nous devons passer du répertoire abhishek au répertoire prakash.

Linux 中的绝对路径和相对路径,有什么区别?

Pour changer de répertoire, utilisez la commande cd. Si vous utilisez un chemin absolu, vous pouvez faire ceci :

cd /home/prakash

Si vous utilisez des chemins relatifs, vous devez utiliser des chemins relatifs spéciaux.. :

cd ../prakash

Pourquoi utiliser ..? Puisque le chemin relatif commence à partir du répertoire courant, nous devons dire à la commande cd de monter d'un niveau, nous amenant au répertoire /home et de là au répertoire prakash.

Les chemins absolus commencent toujours par / et sont indépendants de l'emplacement actuel ; les chemins relatifs dépendent de l'emplacement actuel.

Chemin absolu ou chemin relatif, lequel utiliser ?

Honnêtement, il n’y a pas de réponse simple à cette question. Ça dépend.

Si la hiérarchie de répertoires dans laquelle vous vous trouvez actuellement est relativement profonde et que vous devez monter ou descendre d'un niveau, il est plus facile d'utiliser des chemins relatifs.

En supposant que vous résidez à

/home/username/programming/project/interface/src/header et doit accéder à quelque chose dans le répertoire /home/username/programming/project/interface/bin. L'utilisation d'un chemin relatif évite de taper tout ce long nom de répertoire, utilisez simplement .././bin ici.

Cependant, si vous souhaitez accéder à quelque chose dans le répertoire /usr/bin à partir du répertoire /home/username/programming/project/interface/src/header, utilisez ../../../../.. /../usr/bin sera plus gênant. Dans ce cas, il est plus pratique d'utiliser le chemin absolu.

Une autre situation consiste à utiliser des chemins dans des scripts ou des programmes. Si l'emplacement est certain, utilisez un chemin absolu ; s'il existe plusieurs dossiers dans le projet et que vous devez basculer entre eux, utilisez ici un chemin relatif car vous ne savez pas où l'utilisateur final placera le programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer