Vorrei elencare tutti i file che corrispondono a un determinato modello ignorando il caso.
Ad esempio, eseguo i seguenti comandi:
ls *abc*
Voglio vedere tutti i file che hanno "abc" come parte del nome del file, ignorando il caso, come
-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
Nota
Ho cercato il caso nella pagina man, ma non ho trovato nulla.
Risposta accettata:
Questo è effettivamente fatto dalla tua shell, non da ls
.
In bash
, useresti:
shopt -s nocaseglob
e poi esegui il tuo comando.
O in zsh
:
unsetopt CASE_GLOB
O in yash:
set +o case-glob
e poi il tuo comando.
Potresti voler inserirlo in .bashrc
, .zshrc
o .yashrc
, rispettivamente.
In alternativa, con zsh:
setopt extendedglob
ls -d -- (#i)*abc*
(vale a dire il globbing senza distinzione tra maiuscole e minuscole in base ai caratteri jolly)
Con ksh93:
ls -d -- ~(i:*abc*)
Vuoi glob per funzionare in modo diverso, non ls
, poiché sono tutti file passati a ls
dalla conchiglia.