Tutoriel des commandes Linux readlink et realpath pour les débutants (avec des exemples)

Nous avons déjà parlé de la commande ln, qui te permet de créer des liens entre les fichiers. Mais il existe aussi des outils qui te permettent de résoudre ces liens.

Dans ce tutoriel, nous allons aborder les bases des commandes realpath et readlink qui sont similaires (si ce n’est identiques) dans le sens où elles affichent les liens symboliques résolus en sortie. Mais avant cela, il est bon de mentionner que tous les exemples ici ont été testés sur Ubuntu 18.04 LTS et sur Debian 10.

Commandes Linux realpath et readlink

Comme nous l’avons déjà mentionné au début, les commandes realpath et readlink affichent le chemin résolu pour les liens symboliques dans la sortie.

Voici leur syntaxe :

realpath [OPTION]... FILE...
readlink [OPTION]... FILE...

Et voici ce que disent leurs pages de manuel respectives :

Print the resolved absolute file name
print resolved symbolic links or canonical file names

Voici quelques exemples sous forme de questions-réponses qui devraient te donner une meilleure idée du fonctionnement de ces outils.

Q1. Comment résoudre un chemin à l’aide de realpath et readlink ?

C’est simple, il suffit de fournir le fichier ou le chemin en entrée. L’exemple suivant montre que ces deux commandes résolvent un lien symbolique.

Résoudre le lien en utilisant realpath et readlink

Et voici comment elles fonctionnent avec les chemins :

Résoudre le chemin à l'aide de realpath et readlink

Tu peux donc voir que les deux commandes ont résolu avec succès les liens symboliques dans les deux cas.

Q2. Comment imprimer le chemin résolu relatif à un répertoire ?

La commande realpath te permet de le faire facilement. Par exemple, suppose que c’est ce que tu essaies de faire :

realpath /var/local/Downloadslink

Cependant, une exigence supplémentaire est d’avoir la sortie de cette commande relative au répertoire /home/himanshu. Voici alors la commande que tu dois exécuter :

realpath /var/local/Downloadslink --relative-to=/home/himanshu

Voici la sortie :

Downloads

Tu peux donc voir que l’option ‘–relative-to’ t’a permis d’obtenir une sortie relative au répertoire /home/himanshu.

Q3. Comment se débarrasser de … dans les chemins ?

Il peut arriver que le but ne soit pas d’étendre/résoudre les liens symboliques, mais de se débarrasser de .. dans le chemin. La commande realpath te permet de le faire.

Il te suffit d’utiliser l’option de ligne de commande -s. Voici un exemple :

realpath -s ../../var/local/Downloadslink

Et voici le résultat de cette commande :

/var/local/Downloadslink

Q4. Comment modifier le caractère de délimitation ?

Par défaut, la nouvelle ligne est utilisée comme caractère de délimitation. Cependant, les deux commandes offrent un moyen d’avoir NUL comme délimiteur à la place.

L’option que tu dois utiliser dans les deux cas est -z.

realpath -z [FILE/PATH]
readlink -z [FILE/PATH]

Conclusion

Ce dont nous avons parlé ici n’est qu’une poignée d’options/fonctionnalités offertes par ces commandes. Une fois que tu as fini de les mettre en pratique, consulte les pages de manuel de readlink et realpath(ici et ici) pour en savoir plus sur ces outils.

Vous aimerez aussi...