Bash: скрипт для поиска файлов по типу mime

во-первых, у меня нет опыта в написании сценариев, поэтому будьте со мной нежны

в любом случае, я попытался сделать скрипт для поиска файлов по типу mime ( аудио, видео, текст...etc), и вот плохой результат, который я придумал.

#!/bin/bash

FINDPATH=""
FILETYPE=""


locate $FINDPATH* | while read FILEPROCESS

do

   if  file -bi "$FILEPROCESS" | grep -q "$FILETYPE"
   then
      echo $FILEPROCESS
   fi

done

это работает, но, как вы могли догадаться, производительность не так хорошо.

Итак, вы можете помочь мне сделать его лучше ? и кроме того, я не хочу полагаться на расширения файлов.

обновление:

здесь что я использую сейчас

#!/bin/bash

FINDPATH=""


find "$FINDPATH" -type f | file -i -F "::" -f - | awk -v FILETYPE=""  -F"::" ' ~ FILETYPE { print  }'

2 ответов


#!/bin/bash
find  | file -if- | grep  | awk -F: '{print }'

раздвоение (exec)дорого. Это запустить file команда только один раз-так, это быстро:

find . -print | file -If - | grep "what you want"

или

locate what.want | file -If -

Регистрация man file

-I    #print mime types
-f -  #read filenames from the stdin