Je voudrais lister tous les fichiers correspondant à un certain modèle tout en ignorant la casse.
Par exemple, j'exécute les commandes suivantes :
ls *abc*
Je veux voir tous les fichiers qui ont "abc" dans le nom du fichier, en ignorant la casse, comme
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file1abc.txt
-rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file2ABC.txt
Remarque
J'ai recherché le cas dans la page de manuel, mais je n'ai rien trouvé.
Réponse acceptée :
Ceci est en fait fait par votre shell, pas par ls
.
Dans bash
, vous utiliseriez :
shopt -s nocaseglob
et puis exécutez votre commande.
Ou en zsh
:
unsetopt CASE_GLOB
Ou en yash :
set +o case-glob
puis votre commande.
Vous voudrez peut-être mettre cela dans .bashrc
, .zshrc
ou .yashrc
, respectivement.
Alternativement, avec zsh :
setopt extendedglob
ls -d -- (#i)*abc*
(c'est-à-dire un globbing insensible à la casse sur une base par caractère générique)
Avec ksh93 :
ls -d -- ~(i:*abc*)
Vous voulez globuler travailler différemment, pas ls
, car ce sont tous des fichiers transmis à ls
par la coque.