Mkdir qui respect la casse

Résolu/Fermé
endefu Messages postés 21 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 7 septembre 2010 - 22 sept. 2009 à 16:25
endefu Messages postés 21 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 7 septembre 2010 - 22 sept. 2009 à 18:57
Bonjour,

J'ai un problème avec mkdir dans un script. Disons que j'utilise la commande suivante dans mon script.

mkdir -p ${HOME}/AAA/BBB/CCC


La je n'ai pas de problème. Par contre quand je fais la même chose sur un disque dur externe :

mkdir -p /media/IomegaHDD/AAA/BBB/CCC


Le résultat est : /media/IomegaHDD/AAA/bbb/ccc. Il n'a pas respecté la casse. Ma question est simple comment faire pour forcer mkdir à respecter la casse.

Merci

6 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
22 sept. 2009 à 16:44
Salut,

Quel système de fichiers sur /media/IomegaHDD/ ?
Avec quelles options est-il monté ?

Le résultat est : /media/IomegaHDD/AAA/bbb/ccc
Seulement les sous-répertoires ne respectent pas la casse ?
1
endefu Messages postés 21 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 7 septembre 2010 1
22 sept. 2009 à 16:53
C'est ca le pb jipicy, c'est le format avec lequel le disque est monté c'est fat32 plutôt que exe3 (ou quelque chose comme ca je sais plus). Donc j'imagine que le seul moyen serait de formater le disque avec le bon format et du coup trouver les drivers pour pouvoir l'utiliser sous windows? C'est ce que je crois comprendre

Sinon c'est vraiment très etrange pour savoir qu'est ce qui respecte ou non la casse.
En fait le tout premier repertoire semble accepté les majuscules. Mais tout les sous-repertoires ne respecte pas la casse sauf si le nom des sous repertoires contient au moins une minuscule.

en gros :
AAA/Bb est possible mais pas AAA/BB.

Si vous pensez que j'ai un moyen de contourner le pb, je prends.

Merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
22 sept. 2009 à 16:59
Regarde dans les options de montage des systèmes vfat (man mount).
0
endefu Messages postés 21 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 7 septembre 2010 1
22 sept. 2009 à 17:00
Plus précisement j'ai monté le disque en utilisant :
mkfs.vfat -n IomegaHDD /dev/sdc1

Pour renommer le disque en même temps.
Alors la dedans le format c'est quoi?? vfat?
En tous cas je suis perdu.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
22 sept. 2009 à 18:02
la commande mkfs (mkfs. vfat) c'est pour créer un système de fichiers (formater) et non pour monter un disque (ou partition).

C'est la commande "mount" qu'il faut utiliser pour monter quelque chose ;-\

Extrait du man mount :
Options de montage pour vfat

Tout d'abord les options de montage pour fat sont reconnues. L'option dotsOK est explicitement supprimée par vfat. De plus, il existe :

uni_xlate
    Traduction des caractères Unicode non gérés en séquences d'échappement spéciales. Ceci permet de sauver et de restaurer des fichiers dont le nom contient n'importe quel caractère Unicode. Sans cette option, un '?' est utilisé à la place des caractères dont la traduction est impossible. Le caractère d'échappement est ':' puisqu'il est de toute manière illégal dans les noms de fichiers vfat. La séquence d'échappement utilisée pour remplacer le caractère unicode u est : ':', (u & 0x3f), ((u>>6) & 0x3f), (u>>12). 
posix
    Autoriser l'existence de deux fichiers dont les noms ne diffèrent que par une distinction majuscule/minuscule. 
nonumtail
    Essayer d'abord de créer un nom court sans numéro de séquence avant d'essayer nom~num.ext. 
utf8
    UTF8 est l'encodage 8-bits de l'Unicode utilisé pour la console. On peut l'employer pour les noms de fichiers. Il est activé avec cette option. Si `uni_xlate' est activé, UTF8 est désactivé. 

shortname=[lower|win95|winnt|mixed]

Définit le comportement pour la création et l'affichage des noms de fichiers qui tiennent dans 8.3 caractères. On préférera toujours l'affichage du nom long s'il existe pour un fichier. Il y a quatre modes :

lower
    Affiche le nom court en minuscules ; enregistre un nom long quand le nom court n 'est pas entièrement en majuscules. 
win95
    Affiche le nom court en majuscules ; enregistre un nom long quand le nom court n 'est pas entièrement en majuscules. winnt Affiche le nom court tel quel ; enregistre un nom long quand le nom court n 'est pas entièrement en majuscules ou entièrement en minuscules. 
mixed
    Affiche le nom court tel quel ; enregistre un nom long quand le nom court n 'est pas entièrement en majuscules. 

La comportement par défaut est "lower". 
0
endefu Messages postés 21 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 7 septembre 2010 1
22 sept. 2009 à 18:57
Ok.
Finalement j'ai tout formaté en ext3 et du coup plus de pb. Mais de toute façon j'ai l'impression que toutes les options lower|win95|winnt|mixed enregistre pas correctement la casse, il faudra que je fasse des tests. En tous cas à chaque fois il y a : enregistre un nom long quand le nom court n 'est pas entièrement en majuscules, ce qui ressemble à mon problème.
En tous cas merci jipicy, pb résolu.
0