Me gustaría enumerar todos los archivos que coincidan con un determinado patrón ignorando el caso.
Por ejemplo, ejecuto los siguientes comandos:
ls *abc*
Quiero ver todos los archivos que tienen "abc" como parte del nombre del archivo, ignorando las mayúsculas y minúsculas, como
-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
He buscado case en la página de manual, pero no pude encontrar nada.
Respuesta aceptada:
En realidad, esto lo hace su shell, no ls .
En bash , usarías:
shopt -s nocaseglob
y entonces ejecuta tu comando.
O en zsh :
unsetopt CASE_GLOB
O en yash:
set +o case-glob
y luego tu comando.
Es posible que desee poner eso en .bashrc , .zshrc o .yashrc , respectivamente.
Alternativamente, con zsh:
setopt extendedglob
ls -d -- (#i)*abc*
(es decir, convertir mayúsculas y minúsculas en una base por comodín)
Con ksh93:
ls -d -- ~(i:*abc*)
Quieres globos para trabajar diferente, no ls , ya que esos son todos los archivos pasados a ls por la concha.