Não pode haver muitas terminações de arquivo, pode? Pelo menos é um número finito. Eu acho que essa tarefa é excepcionalmente adequada para o trabalho de terminal.
Além das extensões usuais
- .avi
- .mpg / .mpeg
- .wmv
- .mov
- .mkv
- .flv
sem distinção entre maiúsculas e minúsculas, provavelmente você pode adivinhar os arquivos de vídeo restantes pesquisando todos os arquivos acima de um determinado tamanho, talvez excluindo alguns suspeitos comuns que não são de vídeo, como
- .rar
- .zip
- .gz
- .mp3
- .flac
- .doc
e assim por diante, para clareza, e refinar esta lista se você encontrar mais problemas.
Eu faria, assim, iterativamente, por exemplo,
find /my/drive -not -iregex '.*\.\(avi\|mpe?g\|wmv\|mov\|mkv\|flv\|rar\|zip\|gz\|mp3\|flac\|pdf\|doc\)' -type f -size +10M
encontrar mais terminações de arquivos que podem ser vídeos e adicioná-los à lista de extensões de vídeo.
Isso não deve levar a muitas execuções (provavelmente apenas uma) e seria rápido, pois as listagens são armazenadas em cache após a primeira execução.
Quando os finais dos arquivos forem coletados, encontre todos os arquivos de vídeo correspondentes em sua lista de extensões refinadas:
find /my/drive -iregex '.*\.\(avi\|mpe?g\|wmv\|mov\|mkv\|flv\)' -type f
Agora você pode criar diretamente este comando e executar ações em todos os arquivos de uma só vez, por exemplo, movê-los para um local diferente ou apenas listá-los ou o que você deseja fazer. Talvez apenas faça coisas manualmente com eles depois de divulgar seus locais.
Existem soluções mais complicadas que testariam o conteúdo de todos os arquivos, por exemplo, o utilitário file
em combinação com find
e, em seguida, grep
: o resultado para arquivos de vídeo, mas seria muitas magnitudes mais lentas. A adivinhação da extensão do nome do arquivo é uma malha mais grosseira, mas provavelmente atingirá todos os arquivos de qualquer maneira.