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 ответов
раздвоение (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