← retour aux snippets

realpath: résoudre symlinks et normaliser chemins

Obtenir un chemin absolu canonique, sans ../ ni liens symboliques.

bash filesystem #realpath#readlink#path

objectif

Travailler avec des chemins stables et absolus dans vos scripts.

code minimal

realpath ./relative/../path/file.txt

utilisation

# chemin du script courant (portable GNU coreutils)
script_dir="$(dirname -- "$(realpath -- "$0")")"

variante(s) utile(s)

# fallback via readlink
readlink -f ./path 2>/dev/null || python3 -c 'import os,sys; print(os.path.realpath(sys.argv[1]))' ./path

notes

  • readlink -f n’est pas présent sur tous les systèmes BSD; realpath est plus portable.
  • attention aux chemins inexistants (résolution partielle).