Transformer "/foo/../bar" en "/bar&
santiago69
Messages postés
485
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
salut a tous,
existe-t-il une fonction pour obtenir un chemin d'acces "propre" a partir de n'importe quelle adresse. Par exemple :
Merci d'avance
Santiago
existe-t-il une fonction pour obtenir un chemin d'acces "propre" a partir de n'importe quelle adresse. Par exemple :
/foo/../bar/ -> /bar/ /foo/. -> /foo/
Merci d'avance
Santiago
A voir également:
- Site de rajout pour bara
- Site de telechargement - Accueil - Outils
- Site pour partager des photos - Guide
- Site pour vendre des objets d'occasion - Guide
- Site x - Guide
- Site comme coco - Accueil - Réseaux sociaux
4 réponses
Salut,
Un truc du genre :
Un truc du genre :
[tmpfs]$ echo -e "$A\n$B\n$C\n$D" /foo/../bar/ /foo/. /foo/bar /foo/../../../bar/beau [tmpfs]$ echo -e "$A\n$B\n$C\n$D" | sed 's#\(.*/\).*#\1#;s#.*\(/.*/$\)#\1#' /bar/ /foo/ /foo/ /bar/ [tmpfs]$;-))
Interessant mais ca ne marche pas du tout 8-) Les chemins "propres" devraient etre :
J'ai eu une proposition interessante sur un autre forum https://www.unix.com/
/foo/../bar/ -> /bar /foo/. -> /foo /foo/bar -> /foo/bar /foo/../../../bar/beau -> /bar/beau
J'ai eu une proposition interessante sur un autre forum https://www.unix.com/
$ path='/foo/bar/../beau' $ path=$(cd "$path"; pwd) $ echo path /foo/beau
Ca ne marche toujours pas chez moi :o(
Pourtant j'ai enleve les double \.
Mais j'ai trouve deux solution :
readlink qui est de base dans ma distribution (debian 4.0)
realpath que j'ai installe avec aptitude
realpath offre l'avantage de pouvoir suivre ou pas les liens symboliques (-s pour ne pas suivre) et de pouvoir resoudre plusieurs chemins a la fois (en les separant pas des /000 avec -z)
Merci quand meme. D'ailleurs, je ne comprends rien a cette syntaxe de sed.
Santiago
Pourtant j'ai enleve les double \.
Mais j'ai trouve deux solution :
readlink qui est de base dans ma distribution (debian 4.0)
realpath que j'ai installe avec aptitude
$ readlink -e /foo/../bar///beau/ /bar/beau $ realpath /foo/../bar///beau/ /bar/beau
realpath offre l'avantage de pouvoir suivre ou pas les liens symboliques (-s pour ne pas suivre) et de pouvoir resoudre plusieurs chemins a la fois (en les separant pas des /000 avec -z)
Merci quand meme. D'ailleurs, je ne comprends rien a cette syntaxe de sed.
Santiago
Ben chez moi elle marche ma syntaxe :
[tmpfs]$ echo -e "$A\n$B\n$C\n$D" | sed 's#.*\\.\\.##;s#/.*$##' /bar /foo /foo/bar /bar/beau [tmpfs]$;-))