Maison  >  Article  >  Opération et maintenance  >  Que sont les chemins absolus et les chemins relatifs Linux ?

Que sont les chemins absolus et les chemins relatifs Linux ?

青灯夜游
青灯夜游original
2023-01-31 10:00:458211parcourir

Sous Linux, le chemin absolu fait référence au chemin du fichier qui commence toujours à partir du répertoire racine "/", et le chemin relatif fait référence au chemin du fichier qui commence à partir du répertoire de travail actuel. Le chemin absolu est relatif au chemin racine "/". Tant que le fichier ne bouge pas, son chemin absolu est constant ; tandis que le chemin relatif est relatif au répertoire actuel. Au fur et à mesure de l'exécution du programme, l'emplacement actuel des répertoires peut changer. , donc les chemins relatifs vers les fichiers ne sont pas corrigés.

Que sont les chemins absolus et les chemins relatifs Linux ?

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Qu'est-ce qu'un chemin relatif sous Linux ?

Le chemin est l'un des concepts les plus fondamentaux de Linux, que tout utilisateur Linux doit connaître.

Sous Linux, un chemin fait référence à la façon dont les fichiers et les répertoires sont référencés ; il donne l'emplacement d'un fichier ou d'un répertoire dans la structure de répertoires Linux et se compose d'un nom suivi d'une barre oblique. La simple compréhension du chemin d'accès d'un fichier fait référence à l'emplacement où le fichier est stocké. Par exemple, /home/cat représente l'emplacement où le fichier cat est stocké. Tant que nous indiquons au système Linux l'emplacement exact où un fichier est stocké, il peut le trouver.

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 délimitatrice.

Que sont les chemins absolus et les chemins relatifs 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.

Que sont les chemins absolus et les chemins relatifs ?

Indiquez l'emplacement où un fichier est stocké Il existe deux méthodes, à savoir l'utilisation des chemins absolus et des chemins relatifs.

Nous savons que tous les fichiers (répertoires) du système Linux sont organisés dans une arborescence inversée à partir du répertoire racine "/", comme le montre la figure 1.

Que sont les chemins absolus et les chemins relatifs Linux ?
Figure 1 Diagramme de la structure de l'organisation des fichiers du système Linux

Chemin absolu

Le chemin absolu doit commencer à partir du répertoire racine /, par exemple :

/home/abhishek/scripts/my_scripts.sh

Utilisez le chemin absolu pour indiquer l'emplacement du fichier bin, Le chemin doit être écrit sous la forme /usr/bin, et le code de test est le suivant :

[root@localhost ~]# bin
bash: bin: command not found   <-- 没有找到
[root@localhost ~]# /usr/bin
bash: /usr/bin: is a directory   <-- 是一个文件

Vous pouvez voir que si vous transmettez uniquement un nom de fichier au système Linux, il ne peut pas trouver le fichier spécifié et lorsque l'absolu ; Le chemin du fichier bin est transmis au système Linux, il peut être trouvé avec succès.

Les chemins relatifs

sont différents des chemins absolus. Les chemins relatifs ne partent pas du répertoire racine /, mais partent du répertoire de travail actuel. Lors de l'utilisation de chemins relatifs pour indiquer l'emplacement de stockage d'un fichier, les deux répertoires spéciaux mentionnés précédemment sont souvent utilisés, à savoir le répertoire courant (représenté par .) et le répertoire parent (représenté par ..).

Par exemple, lorsque nous nous connectons au système Linux en tant que root, le répertoire de travail actuel est par défaut /root. Si nous devons ajuster le répertoire de travail actuel au sous-répertoire racine Desktop, nous pouvons bien sûr utiliser le chemin absolu. L'exemple de code est le suivant :

[root@localhost ~]# pwd     <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd /root/Desktop
[root@localhost Desktop]# pwd
/root/Desktop

Vous pouvez voir qu'en utilisant le chemin absolu, nous avons réussi à modifier le chemin de travail actuel. Mais à part ça, il est plus facile d’utiliser des chemins relatifs. Parce qu'il se trouve actuellement dans /root et que Desktop se trouve dans le répertoire courant, donc :

[root@localhost ~]# pwd    <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd ./Desktop
[root@localhost Desktop]# pwd
/root/Desktop

Dans ce code, ./Desktop représente le chemin du fichier Destop par rapport à /root.

Pour donner un autre exemple, si vous vous connectez au système Linux en tant que root et convertissez le répertoire de travail actuel de /root vers le répertoire /usr, il existe deux manières :

#使用绝对路径
[root@localhost ~]# pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd /usr
[root@localhost ~]# pwd
/usr
#使用相对路径
[root@localhost ~]# pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd ../usr <-- 相对 root,usr 位于其父目录 /,因此这里要用到 ..
[root@localhost ~]# pwd
/usr

En bref, le chemin absolu est relatif au chemin racine / , tant que le fichier ne bouge pas, son chemin absolu est constant ; tandis que le chemin relatif est relatif au répertoire courant. Au fur et à mesure de l'exécution du programme, le répertoire courant peut changer, donc le chemin relatif du fichier ne l'est pas. Fixé.

Différence entre chemin absolu et chemin relatif

Nous savons tous que la structure de répertoires sous Linux est une arborescence, partant de 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 ci-dessous. Les deux chemins sont représentés :

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

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

然后,相对路径:

ls -l scripts/my_script.sh

那么,以上两种方式,除了文件路径不一样以外,其他的完全一样:

注:在Linux中,文件名区分大小写。可以有大写、小写、数字、点、中划线、下划线以及除了斜杠(/)之外的大多数字符。斜杠(/)作为保留字符,用于根目录和用于分割路径中的目录。

使用带有 . 和 .. 目录的相对路径

有两种特殊的相对路径:

  • .(一个点):表示路径中的当前路径;
  • ..(两个点):表示父目录,即上一级目录。

如下图,我们要从 abhishek 目录中,到 prakash 目录中去。

切换目录,使用 cd 命令。如果使用绝对路径,可以这样:

cd /home/prakash

使用相对路径的话 ,需要用到特殊的相对路径 .. :

cd ../prakash

为什么要使用 .. 呢?因为相对路径要从当前目录开始,我们需要告诉 cd 命令向上一级,将我们带到 /home 目录,然后从那里在进入到 prakash 目录。

绝对路径始终以 / 开始,并且与当前位置无关;相对路径取决于当前的位置。

绝对路径和相对路径,应该使用哪个呢?

老实说,这个问题没有直截了当的答案。这要视情况而定。

如果你当前所在的目录层次结构比较深,并且需要向上或者向下一级移动,那么使用相对路径会更简单。

假设你位于

/home/username/programming/project/interface/src/header 目录中,并且需要访问 /home/username/programming/project/interface/bin 目录中的某些内容。使用相对路径可以避免键入所有冗长的目录名,只需在此处使用.././bin即可。

但是,如果你要从 /home/username/programming/project/interface/src/header目录访问 /usr/bin 目录中的某些内容,那么使用 ../../../../../../usr/bin 会比较麻烦,这个时候使用绝对路径更方便。

另一种情况,是在脚本或者程序中使用路径。如果位置是确定的,那么就使用绝对路径;如果项目中有多个文件夹,并且需要在其中之间切换,那么此处需要使用相对路径,因为你不确定最终用户会将程序放在什么地方。

推荐学习:Linux视频教程

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn