Eu imagino que isso poderia ser feito como uma linha única, mas parecia um pouco complicado, então eu criei um script para facilitar o lançamento e a edição e o chamei de isto findvids.sh
é o que funcionou para mim.
Nota: Talvez eu não tenha coberto TODOS os tipos de arquivo de vídeo, mas tenho certeza de que tenho a maioria deles. Uma exceção notável é .mkv, pois é o formato de destino do projeto e não preciso encontrar os arquivos que já foram processados. Deve ser muito simples adicionar formatos adicionais (extensões) ao script para atender às suas necessidades, examinando o padrão e ajustando-o de acordo, mantendo as aspas no início e no final da expressão. Observe que os arquivos que você não tem permissão para ler não serão encontrados.
#!/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 com base no comentário: A $
no final dos significa extensão que o termo de pesquisa deve ser encontrada no fim da linha. se quiséssemos corresponder ao início da linha, usaríamos ^
antes do termo que pretendemos corresponder. Você pode encontrar essas âncoras explicadas em mais detalhes aqui.
Fiz uma comparação de velocidade com o uso do find e os resultados foram:
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 é mais rápido. Eu vou estar usando essa abordagem.
Editar: mais testes indicam que a localização foi mais rápida em uma máquina diferente. Acho que meus resultados iniciais de teste de velocidade foram ruins devido ao cache.
Fontes:
man find
man grep
/programming/7190565/unix-find-multiple-file-types