Bonjour à tous.
J'ai un script Perl qui se balade dans les répertoires (c'est un script tout con de création de listes de lecture) et j'ai un problème de chemin symbolique avec Perl :
j'ai un répertoire /home/truc/mp3* dont j'ai fait un lien symbolique vers /home/luc/Desktop/mp3
Mon problème est que lorsque je lance le script Perl dans le lien (donc /home/luc/Desktop/mp3) et que je veux écrire les listes dans le répertoire supérieur, il remonte dans le répertoire réel, à savoir /home/truc/ .
J'aimerais savoir s'il y moyen que Perl fasse comme bash et me remonte dans le chemin symbolique.
La commande getcwd() me renvoie le chemin réel, de même qu'un appel à `pwd`. Le module que j'ai trouvé sur le net (File::Spec) me renvoie encore une fois la même chose...
Si quelqu'un a une idée, ce serait très sympa parce que là, je patauge gentiment dans la semoule.
Merci
* : Oui je sais, mp3 çapucestpalibre mais comme mon baladeur fait que ça et le wma, le choix est vite fait.
# Ne pas changer de répertoire
Posté par Kerro . Évalué à 4.
Est-ce que ça le fait également via ton shell ?
Quoi qu'il en soit, il ne faut pas changer de répertoire lorsque tu es dans un programme. Tu restes là où tu es. Au lieu de dire "je veux écrire le fichier toto.txt" tu dis "je veux écrire le fichier /home/truc/rep/toto.txt".
[^] # Re: Ne pas changer de répertoire
Posté par Framasky (site web personnel) . Évalué à 4.
De toute façon, même sans changer de répertoire, si je demande à Perl dans quel répertoire je me situe, il me renvoie le chemin "réel".
Pour ce qui est de ne pas changer de répertoire, je ne fais effectivement pas de
chdir("rep");
open(FICHIER, ">", "fichier.m3u")
mais bien
open(FICHIER, ">", "rep/fichier.m3u")
Seulement pour déterminer "rep" (si on entre ".." en argument du programme par exemple), je récupère toujours un chemin réel, que ce soit avec abs_path(".."), chdir("..") et cwd()...
Et via mon shell ça ne se passe pas comme ça ! Pwd renvoie bien le chemin symbolique.
Un de mes profs m'a dit que le shell est justement spécial par rapport à ça, histoire de faciliter la vie aux utilisateurs.
Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.