Caractères interdits dans les noms de fichier
Ils peuvent être admis par un logiciel et incompris par un autre,
Retours d'expériences

christian_fisch Membre non connecté
-
- Voir le profil du membre christian_fisch
- Inscrit le : 24/03/2011
- Groupes :
Je viens de comprendre pourquoi une de mes connaissances n'arrivait pas à recopier certains fichiers ou répertoires , par exemple des fichiers tableur de Libreoffice.
Message d'erreur de Dolphin ou de Konqueror : impossible de copier le répertoire...
alors qu'il ne s'agissait que de recopier sur une clef usb en fat 32 ,
J'ai essayé pour constater puis j'ai tenté de renommer le fichier . surprise : le nom était bizarrement cadré. Il y avait sans doute des caractères blanc ? avant le nom

Un autre fichier ne pouvait être copié : il avait un " 2013->2014" dans le nom . J'ai enlevé le > et la copie a pu se faire.

J'ai appris il y a longtemps ( 1975 ?) qu'un nom de fichier ne devait contenir que des caractères "ASCII" alpha décimaux et aucun accent ni intervalle, ni / ni , le souligné étant autorisé.

Maintenant je vois que presque tous les caractères sont utilisés, mais il y a quand même des règles ? ou bien des bugs à signaler ?
Christian

magnux77 Membre non connecté
-
- Voir le profil du membre magnux77
- Inscrit le : 21/09/2009
- Groupes :
-
Membre d'Honneur
Dans les commandes GNU/Linux, le caractère espace " " est le séparateur qui permet de détecter la fin d'un terme et passer au suivant, le ">" provoque la redirection de la sortie standard, le dollar "$" indique que le nom de variable qui suit va être remplacé par son contenu, etc...
En outre les caractères blancs comme tu dis ne sont pas forcément blancs, ce sont bien souvent des caractères, autres que blanc mais qui ne sont pas affichables et dont l'effet peut être surprenant...
L'interface graphique masque tout cela. Mais tous ces caractères spéciaux peuvent être déspécialisés ou rendus sans effet quand ils sont précédés par le caractère de déspécialisation "". Pour plus de détails, voir ici
Trêve de littérature, par ton interface graphique et ton gestionnaire de fichiers favoris, crée un dossier de test que tu pourras supprimer ultérieurement. Dans ce dossier, crée des fichiers avec des noms bizarres. Ensuite lance une console et navigue jusqu'à ton dossier pour examiner en mode console le nom de ces fichiers, ou comment le shell contourne les effets de ces caractères spéciaux. Avec les commandes suivantes : "ls" pour lister le contenu d'un dossier, "cd" pour changer de dossier, "cd .." pour remonter vers le dossier parent.
Voili, voilà...
Édité par magnux77 Le 11/05/2014 à 11h40
...depuis Mandrake 7
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]

christian_fisch Membre non connecté
-
- Voir le profil du membre christian_fisch
- Inscrit le : 24/03/2011
- Groupes :
Merci pour cette réponse qui est très intéressante.
Pour ce qui est nom de fichier il y a problème quand même
- pour l'interopérabilité ( sous win on voit bien des noms curieux sans parler des accents )
- dans le cas observé: pourquoi le fichier enregistré 2013->2014 par exemple par openoffice ou libreoffice, est bien vu par Dolphin, mais ne peut être copié ?
il y a une cohérence en défaut ? Faut-il engager une chasse au bug pour ce genre de problème ?
Édité par christian_fisch Le 11/05/2014 à 12h44
Christian

magnux77 Membre non connecté
-
- Voir le profil du membre magnux77
- Inscrit le : 21/09/2009
- Groupes :
-
Membre d'Honneur
Qu'il y ait des problèmes de cohérence entre logiciels multiOS comme LibreOffice, environnements de bureau (KDE,Gnome,XFCE,...) et l'OS lui-même, ce n'est pas impossible. Les origines sont diverses, les développements autonomes, les normes évoluent, les versions ne les intègrent pas de la même manière...
L'utilisation de ces caractères spéciaux donnent au bash toute sa puissance et sa concision. Des caractères spéciaux peuvent être déspécialisés à un niveau mais une 2ème évaluation intervient, les protections ont disparu puisqu'ils n'appatient pas au nom du fichier. Et alors, si une 2ème interprétation survient, s'ils n'ont pas été déspécialisés 2 fois (\) alors ces caractères spéciaux jouent le rôle qui leur incombe dans la chaîne de caractères et provoquent des comportements qui ne sont pas attendus.
Quelques lectures supplémentaires pour te montrer que ce bash est merveilleux et pas toujours si simple :
- http://manpagesfr.free.fr/man/man1/bash.1.html notamment la partie EXPANSION
Tu n'es pas sans savoir que l'astérisque signifie n'importe quelle chaîne de caractère. Alors voici un exemple simpliste sur des effets non désirés de l'emploi de ce caractère.
Soit un répertoire vide, j'y crée 4 fichiers a,b,c et *. Si je veux ne lister que le contenu du fichier *, je liste le contenu concaténé de tous les fichiers du dossier. Si je veux supprimer le fichier * je supprime tous les fichiers du répertoire !
[jps@AnnePortable toto]$ ll
total 0
[jps@AnnePortable toto]$ echo "aaa" > a
[jps@AnnePortable toto]$ echo "bbb" > b
[jps@AnnePortable toto]$ echo "ccc
> ccc
> ccc" > c
[jps@AnnePortable toto]$ echo "***" > *
[jps@AnnePortable toto]$ ll
total 16
-rw-r--r-- 1 jps jps 4 mai 12 10:32 *
-rw-r--r-- 1 jps jps 4 mai 12 10:31 a
-rw-r--r-- 1 jps jps 4 mai 12 10:31 b
-rw-r--r-- 1 jps jps 12 mai 12 10:31 c
[jps@AnnePortable toto]$ cat *
***
aaa
bbb
ccc
ccc
ccc
[jps@AnnePortable toto]$ ll
total 16
-rw-r--r-- 1 jps jps 4 mai 12 10:32 *
-rw-r--r-- 1 jps jps 4 mai 12 10:31 a
-rw-r--r-- 1 jps jps 4 mai 12 10:31 b
-rw-r--r-- 1 jps jps 12 mai 12 10:31 c
[jps@AnnePortable toto]$ rm -f *
[jps@AnnePortable toto]$ ll
total 0
[jps@AnnePortable toto]$
total 0
[jps@AnnePortable toto]$ echo "aaa" > a
[jps@AnnePortable toto]$ echo "bbb" > b
[jps@AnnePortable toto]$ echo "ccc
> ccc
> ccc" > c
[jps@AnnePortable toto]$ echo "***" > *
[jps@AnnePortable toto]$ ll
total 16
-rw-r--r-- 1 jps jps 4 mai 12 10:32 *
-rw-r--r-- 1 jps jps 4 mai 12 10:31 a
-rw-r--r-- 1 jps jps 4 mai 12 10:31 b
-rw-r--r-- 1 jps jps 12 mai 12 10:31 c
[jps@AnnePortable toto]$ cat *
***
aaa
bbb
ccc
ccc
ccc
[jps@AnnePortable toto]$ ll
total 16
-rw-r--r-- 1 jps jps 4 mai 12 10:32 *
-rw-r--r-- 1 jps jps 4 mai 12 10:31 a
-rw-r--r-- 1 jps jps 4 mai 12 10:31 b
-rw-r--r-- 1 jps jps 12 mai 12 10:31 c
[jps@AnnePortable toto]$ rm -f *
[jps@AnnePortable toto]$ ll
total 0
[jps@AnnePortable toto]$
Conclusion : dans les noms de fichiers n'utiliser que les caratères alphanumériques, majuscules et minuscules respectées, est bien souvent la méthode la sûre. Pour reprendre le nom qui t'avait posé problème, personnellement, j'aurais utilisé quelquechose comme ça : Migration2013vers2014.
Édité par magnux77 Le 12/05/2014 à 13h47
...depuis Mandrake 7
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]
Membre de l'April - « promouvoir et défendre le Logiciel Libre»
Soutien Framasoft - « Changer le monde, un octet à la fois»
Config n°1 : cpu=AMD64x6 mem=16G SSD=64G HDD=1T OS=Mageia8-64 DE=Xfce, Config n°2 : Dell Latitude E6410 SSD=120G OS=Mageia8 DE=Xfce, Config n°3 : ThinkpadR40 SSD=32G OS=[Manjaro, Parabola, Mageia6] DE=Xfce, Config n°4 : EeePC901 SSD=20Gb, OS=[SliTaz5/Lxde, Mageia8/Xfce]
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie