Para encontrar arquivos de um determinado tipo, eu não procuraria pela extensão do arquivo. Eu prefiro digitalizar arquivos para o tipo MIME usando uma combinação de find
e file
. Esta saída pode então ser grep
ed para o mimetypesm desejado, por ex. audio/*
e video/*
.
Eu criei um pequeno script para fazer isso:
#!/usr/bin/env bash
#Don't know whether you want to do so, but this deletes a existing media.txt
rm media.txt
#Find files of desired MIME types and store them in $list
list=$(find | file -if - | grep -P "(audio/.*?;)|(video/.*?;)")
n=0
#Iterate over each line in the list (one file per line)
while read -r line; do
#Append the filename to media.txt
echo "$line" | cut -f1 >> media.txt
#Increase file counter
n=$(($n+1))
done <<< "$list"
#Output the result
echo "$n media files found! Saved to media.txt"
Note que eu uso o RegExp completo com o grep. Para adicionar alguns tipos de MIME, construa-os da mesma forma como fiz com os dois já incluídos: (type/enc;)
e adicione-os com um RegExp OR ( |
).
PS: Como está, o script opera no diretório atual. Se você quiser torná-lo mais flexível, adicione um $1
entre find
e o seguinte. Agora, execute o script e forneça o caminho para pesquisar como argumento.