unix - recursivo - ¿Cómo usar el comando find para encontrar todos los archivos con extensiones de la lista?
comando find linux ejemplos (8)
En complemento a la respuesta de @Dennis Williamson anterior, si desea que la misma expresión regular no distinga entre mayúsculas y minúsculas de las extensiones de archivo, use -iregex:
find /path/to -iregex ".*/./(jpg/|gif/|png/|jpeg/)" > log
Necesito encontrar todos los archivos de imagen del directorio (gif, png, jpg, jpeg).
find /path/to/ -name "*.jpg" > log
¿Cómo modificar esta cadena para encontrar no solo archivos .jpg?
En el uso de Mac OS
find -E packages -regex ".*/.(jpg|gif|png|jpeg)"
find -E /path/to -regex ".*/.(jpg|gif|png|jpeg)" > log
El -E
evita tener que escapar de los paréntesis y las tuberías en su expresión regular.
find -regex ".*/./(jpg/|gif/|png/|jpeg/)"
find /path -type f /( -iname "*.jpg" -o -name "*.jpeg" -o -iname "*gif" /)
find /path/to -regex ".*/./(jpg/|gif/|png/|jpeg/)" > log
find /path/to/ -iname ''*.gif'' -o -iname ''*.jpg'' -o -iname ''*.png'' -o -iname ''*.jpeg''
trabajará. Puede haber una manera más elegante.
find /path/to/ -type f -print0 | xargs -0 file | grep -i image
Utiliza el comando de file
para tratar de reconocer el tipo de archivo, independientemente del nombre de archivo (o extensión).
Si /path/to
ao un nombre de archivo contiene la image
cadena, entonces lo anterior puede devolver resultados falsos. En ese caso, sugeriría
cd /path/to
find . -type f -print0 | xargs -0 file --mime-type | grep -i image/