61 votes

Convertir un chemin relatif en chemin absolu ?

Je ne sais pas si ces chemins sont des doublons. Étant donné le chemin relatif, comment déterminer le chemin absolu à l'aide d'un script shell ?

Exemple:

 relative path: /x/y/../../a/b/z/../c/d

absolute path: /a/b/c/d

50voto

DVK Points 63282

De cette source vient :

 #!/bin/bash

# Assume parameter passed in is a relative path to a directory.
# For brevity, we won't do argument type or length checking.

ABS_PATH=`cd "$1"; pwd` # double quotes for paths that contain spaces etc...
echo "Absolute path: $ABS_PATH"

Vous pouvez également faire un one-liner Perl, par exemple en utilisant Cwd::abs_path

19voto

SteveMc Points 809

Jetez un œil à « realpath ».

 $ realpath

usage: realpath [-q] path [...]

$ realpath ../../../../../

/data/home

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X