katmars Posté 24 Septembre 2012 Posté 24 Septembre 2012 Bonjour, J'ai besoin de récupérer une archive sur un serveur dont un grand nombre de fichiers contient les caractères "%5C" (ie. backslash) dans leur nom. Les logiciels FTP utilisés (winscp sous windows ou gftp sous ubuntu) génèrent des erreurs et ne sont pas capables de rapatrier ces fichiers sur mon PC. Avez-vous une solution (astuce) pour contourner le problème ? A noter : Je ne peux pas me connecter en SFTP sur le serveur Je ne peux pas changer les noms des fichiers sur le serveur D'avance merci de votre aide, Sylvain
jcaron Posté 24 Septembre 2012 Posté 24 Septembre 2012 Ça aiderait si tu nous disais quelle est l'erreur que tu obtiens dans chaque cas. Le nom du fichier contient vraiment "%5C" ou vraiment backslash? Il n'y a pas de raison a priori qu'un client FTP décode des noms comme ça, donc j'ai tendance à penser qu'il s'agit réellement d'un backslash, non? Dans ce cas, il peut y avoir plusieurs problèmes: - sous Windows, \ est le séparateur dans un chemin d'accès à un fichier. Il faut donc utiliser un autre nom local (la plupart des clients FTP permettent d'indiquer le nom du fichier distant et le nom du fichier dans lequel on veut sauvegarder ça, le nom distant n'étant que la valeur par défaut) - si tu passes le nom du fichier en ligne de commande, le \ sert normalement à "échapper" certains caractères spéciaux. Il convient donc de l'échapper lui-même (i.e. \\ au lieu de \) et/ou de mettre l'argument entre ' pour éviter qu'il ne soit interprété comme tel (tout dépend du shell utilisé). - dans certains cas, il peut y avoir en fait plusieurs niveaux qui vont avoir du mal avec le \, ce qui peut aboutir à des \\\\ voire \\\\\\\\... Si ce n'est pas ça, il va falloir nous donner plus de détails, en particulier les noms réels des fichiers et les erreurs obtenues... Jacques.
katmars Posté 25 Septembre 2012 Auteur Posté 25 Septembre 2012 Bonjour Jacques, Tu as raison, les noms des fichiers posant problème sur le serveur sont du type : "L\'oiseau n\'est pas ici.zip". Est-ce qu'il y a des fonctions dans les logiciels FTP (winscp, gftp) pour "modifier à la volée" ces caractères interdits ? Bonne journée, Sylvain
Dan Posté 25 Septembre 2012 Posté 25 Septembre 2012 Bonjour Sylvain, Tu n'as pas d'accès ssh au serveur ? Si c'était tout de même le cas et sans supprimer les fichiers, tu pourrais créer une archive tar comprenant tous ces fichiers, et lui donner le nom que tu souhaites. Ensuite tu pourrais télécharger cette archive par ftp sans difficulté aucune. Il est vrai qu'un nom de fichier tel que "L\'oiseau n\'est pas ici.zip" n'est pas très confortable pour Linux, ni pour Windows d'ailleurs. Par contre, tu aurais des difficultés pour extraire l'archive en local, vu que les noms de fichiers contiennent des caractères non autorisés sous Windows.
jcaron Posté 25 Septembre 2012 Posté 25 Septembre 2012 Euh... Tu es même sûr qu'il y a bien des \ dans les noms des fichiers, et que ce ne sont pas carrément les ' qui sont échappés par "quelque chose" (serveur ou client FTP)? Ceci dit, si c'était le cas, les espaces seraient probablement échappés aussi... Quoi qu'il arrive, tu as plusieurs options: - tu peux renommer les fichiers sur le serveur via FTP (via la commande "rename"), si tu as les droits qui conviennent pour le faire - tu peux utiliser la syntaxe ou la fonction permettant de spécifier le nom local à utiliser Dans les deux cas, tu vas probablement devoir trouver la bonne combinaison d'échappement (avec des \) et de quoting. Un client FTP avec une UI devrait gérer tout ça tout seul pour toi (il doit juste falloir faire un clic-droit sur le fichier pour spécifier le nom local). Sur un client en ligne de commande, certains intègrent l'auto-complétion, et s'il la font correctement, ils échapperont ce qu'il faut comme il faut. Tu peux aussi utiliser des wildcards... "L*ici.zip" par exemple. Jacques.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant