2010-09-22 9 views
12

En este momento, todo lo que sé a utilizar es:Ignorar mayúsculas cuando se trata de coincidir con los nombres de archivo utilizando comando find en Linux

find/-name string.* 

que es sensible a mayúsculas y no va a encontrar archivos con el nombre:

1string.x 
STRing.x 
string1.x 

¿Cómo puedo buscar para que todo lo anterior sea devuelto en la búsqueda a una coincidencia insensible a mayúsculas y minúsculas?

+0

debe estar bajo http://unix.stackexchange.com/ – Joset

Respuesta

5

O usted podría utilizar find/| grep -i string

+1

'find' hace esto de forma nativa. Crear otro proceso solo para hacer eso lo hará más lento. – Daenyth

+0

Verdadero, pero es fácil de recordar y coherente con el patrón de herramientas de software. Find hace globbing de shell en el viejo '-name', es cierto. – DigitalRoss

17

Utilice la opción -iname en lugar de -name.

+0

¿Qué pasa con los personajes antes y después de la cadena? will -iname devolver nombres con caracteres adicionales? –

+4

@micah: si se lo dices. 'encontrar. -iname '* string *' ' – Daenyth

+0

Ok, pero' -iname' no es una opción de búsqueda de Posix. Posix especifica la coincidencia de patrón de shell para '-name'. – DigitalRoss

2

Utilice -meto en find para el nombre de archivo insensible a mayúsculas y minúsculas.

4

Esto funciona así, si se quiere evitar las comillas simples:

find . -iname \*string\* 
+0

encontrar. -iname \ * YOUR_PATTERN \ * -type f – Benj

0

Si el sistema está en no tiene el comando find proporcionada por el GNU utils, puede utilizar la etiqueta -name solo con expresiones como soporte POSIX

find . -name '*[Ss][Tt][Rr]ing*' 
Cuestiones relacionadas