Me imagino que esto se podría hacer como una línea, pero me pareció un poco engorroso, así que creé un script para facilitar su lanzamiento y edición y lo llamé findvids.sh
Esto es lo que funcionó para mí.
Nota: es posible que no haya cubierto TODOS los tipos de archivos de video, pero estoy seguro de que tengo la mayoría de ellos. Una excepción notable es .mkv, ya que es el formato de destino para el proyecto y no necesito encontrar los archivos que ya se han procesado. Debe ser muy simple agregar formatos adicionales (extensiones) al script para satisfacer sus necesidades examinando el patrón y ajustándolo en consecuencia mientras mantiene las comillas al principio y al final de la expresión. Tenga en cuenta que los archivos que no tiene permiso para leer no se encontrarán.
#!/bin/bash
#This script is intended to find virtually all video file formats.
find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp*$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"
Editar en base a un comentario: El $
al final de la extensión significa que el término de búsqueda debe encontrar al final de la línea. si quisiéramos igualar el comienzo de la línea, usaríamos ^
antes del término que pretendemos igualar. Puede encontrar estos anclajes explicados con más detalle aquí.
Hice una comparación de velocidad con el uso de localizar y los resultados fueron:
time locate *.mkv *.webm *.flv *.vob *.ogg *.ogv *.drc *gifv *.mng *.avi *.mov *.qt *.wmv *.yuv *.rm *.rmvb *.asf *.amv *.mp4$ *.m4v *.mp *.m?v *.svi *.3gp *.flv *.f4v
real 0m8.887s
user 0m5.814s
sys 0m0.052s
vs.
time find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp4$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"
real 0m2.795s
user 0m0.657s
sys 0m1.115s
Inesperadamente, encontrar es más rápido. Usaré este enfoque.
Editar: más pruebas indican que localizar fue más rápido en una máquina diferente. Creo que los resultados iniciales de mi prueba de velocidad fueron falsos debido al almacenamiento en caché.
Fuentes:
man find
man grep
/programming/7190565/unix-find-multiple-file-types