Re: [SSFR] Partage de fonctions ... |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
>
> euhh il doit y avoir erreur, il me semble que canonicalize_filename
> traite uniquement de chaines (virer les ., .., bidouilles a base de
> \ et / & autres, elle ne garantie en rien les types constituant le chemin
> sur un fs qquelconque (symlink) :)
si elle déréference les liens symboliques (d'après le manuel de la glibc) :
-- Function: char * canonicalize_file_name (const char *NAME)
The `canonicalize_file_name' function returns the absolute name of
the file named by NAME which contains no `.', `..' components nor
any repeated path separators (`/') or symlinks.
bien sur ça ne gère pas liens physiques mais ça c'est pas très grave.
>
> pour ce que j'ai pu voir de la fonction python elle fait reference a
> getcwd qui doit raporter un chemin absolu du working directory du process
> apres que celui-ci se soit placé dans un chemin ou se trouve un fichier.
> En se rappelant que seul ce chemin peut etre unique, car le fichier peut
> lui apparaitre a plusieurs chemins sur un meme fs (hard link).
>
> l'equivalent en bash ca peut etre: cd $(dirname blabla) && pwd -P && cd -
>
ok mais il reste le cas ou le dernier composant du chemin est un lien
symbolique. Pas si évident que ça à regler.
à part ça j'ai aussi installé bash-builtins sans trouver la fonction realpath,
mais j'ai fini par découvrir que readlink offrait les paramètres suivants :
-f, --canonicalize
canonicalize by following every symlink in every component of
the given name recursively; all but the last component must exist
-e, --canonicalize-existing
canonicalize by following every symlink in every component of
the given name recursively, all components must exist
-m, --canonicalize-missing
canonicalize by following every symlink in every component of
the given name recursively, without requirements on components existence
exactement ce que je cherchais, je savais bien que c'était quelque part ^^
merci pour les réponses,
--
Cédric Lucantis
---