Vérifier un répertoire sans casse

Résolu
bossoax Messages postés 47 Statut Membre -  
bossoax Messages postés 47 Statut Membre -
Bonjour à tous,

J'ai une commande basique if [ -d $MON_REPERTOIRE ] then ...

Et j'aurais aimé savoir si on peut y ajouter une option pour ignorer la casse ?

En gros, des fois j'ai TOTO, des fois toto, des fois ToTo...

Merci à vous :)
Configuration: Windows XP
Firefox 3.5.2

7 réponses

  1. foobar47 Messages postés 13654 Statut Contributeur 534
     
    Salut,

    MON_REPERTOIRE=[tT][oO][tT][oO];

    Ca fonctionne ?
    0
  2. bossoax Messages postés 47 Statut Membre
     
    Le probléme c'est que des fois c'est tata, titi, toutou ou bien d'autre encore...

    désolé
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    la variable et le répertoire peuvent être TOTO, toto, ToTo ?
    ou bien la variable est toutjours toto ?
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Active l'option "nocaseglob" avec "shopt"...

    Extrait du man bash :
       Développement des noms de fichiers
           Après le découpage des mots, et si l'option -f n'est pas indiquée, bash
           recherche  dans chaque mot les caractères *, ?, (, et [.  Si l'un d'eux
           apparaît, le mot est considéré comme un  motif,  et  remplacé  par  une
           liste,  classée par ordre alphabétique, des noms de fichiers correspon-
           dant à ce motif.  Si  aucun  nom  de  fichiers  ne  correspond,  et  si
           l'option  shell  nullglob  n'est pas active, le mot reste inchangé.  Si
           l'option  nullglob  est  active,  et  si  aucune  correspondance  n'est
           trouvée,  le  mot  est  supprimé.   Si  l'option  shell  nocaseglob est
           activée, la correspondance a lieu sans  tenir  compte  des  différences
           majuscules  /  minuscules.   Quand  un motif est utilisé pour créer des
           chemins d'accès, le caractère ``.''  au début d'un nom,  ou  immédiate-
           ment  à  la  suite d'un slash doit être explicitement mis en correspon-
           dance, à moins que l'option shell dotglob ne soit active.  Le caractère
           slash  doit  toujours  être  mis en correspondance explicitement.  Dans
           tous les autres cas, le caractère ``.''  n'est pas  traité  spécifique-
           ment.   Voyez  la  description  de  la  commande  shopt  dans COMMANDES
           INTERNES DU SHELL pour une description des  options  shell  nocaseglob,
           nullglob, et dotglob.
    
           shopt [-pqsu] [-o] [nom_opt ...]
                  Bascule la  valeur  des  variables  contrôlant  le  comportement
                  optionnel du shell.  Sans option, ou avec l'option -p, une liste
                  de toutes les options configurables est affichée, avec l'indica-
                  tion de l'état de chacune d'entre elles.  L'option -p réclame un
                  affichage susceptible d'être réutilisé en  entrée.   Les  autres
                  options ont les significations suivantes :
                  -s     Activer chaque nom_opt indiqué.
                  -u     Désactiver chaque nom_opt indiqué.
                  -q     Supprimer la sortie normale (mode silencieux). Le code de
                         retour indique si l'option nom_opt est active ou non.  Si
                         plusieurs  nom_opt  sont  fournis en argument de l'option
                         -q, le code de retour est nul si tous  les  nom_opt  sont
                         actifs, et non-nul sinon.
                  -o     Restreindre  les  valeurs  des nom_opts à celles définies
                         pour l'option -o de la commande set interne.
    
                  Si  l'option  -s  ou  -u  est  utilisé  sans  argument  nom_opt,
                  l'affichage  est  limité  aux  options qui sont actives ou inac-
                  tives, respectivement.  sauf indication contraire,  les  options
                  shopt sont désactivés par défaut.
    ;-))
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. bossoax Messages postés 47 Statut Membre
     
    moi ca me fait peur de cocher cette option.

    Je préfére faire

    cd mon_repertoire_connu

    ls | grep -i "mon_repertoire_sans_casse"
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    $ ls -F
    tOtO/ TOTO12/
    $ MON_REPERTOIRE=onk
    $ D=$(find . -maxdepth 1 -iname $MON_REPERTOIRE)
    $ echo $D

    $ MON_REPERTOIRE=toto
    $ D=$(find . -maxdepth 1 -iname $MON_REPERTOIRE)
    $ echo $D
    ./tOtO
    $ if [ -n $D ] ; then ...
    0
  8. bossoax Messages postés 47 Statut Membre
     
    ok merci pour ces commandes, ca va m'aider :)
    0