¿Cómo utilizar el comando buscar para buscar todos los archivos con extensiones de la lista?
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?
Aceptado
find /path/to -regex ".*\.\(jpg\|gif\|png\|jpeg\)" > log
find /path/to/ \( -iname '*.gif' -o -iname '*.jpg' \) -print0
trabajará. Quizás haya una forma más elegante.
find -E /path/to -regex ".*\.(jpg|gif|png|jpeg)" > log
Esto -E
le evita tener que escapar de los paréntesis y tuberías en su expresión regular.
find /path/to/ -type f -print0 | xargs -0 file | grep -i image
Esto utiliza el file
comando para intentar reconocer el tipo de archivo, independientemente del nombre del archivo (o extensión).
Si /path/to
o un nombre de archivo contiene la cadena image
, 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/