首先,我没有编写脚本的经验,所以要对我很温和
无论如何,我尝试制作一个脚本来通过mime-type(音频,视频,文本等)查找文件,这就是我想出的糟糕结果。
#!/bin/bash
FINDPATH="$1"
FILETYPE="$2"
locate $FINDPATH* | while read FILEPROCESS
do
if file -bi "$FILEPROCESS" | grep -q "$FILETYPE"
then
echo $FILEPROCESS
fi
done
它有效,但正如你猜测的那样,表现并不是那么好。
那么,你们能帮助我做得更好吗?而且,我不想依赖文件扩展名。
更新:
这是我现在使用的
#!/bin/bash
FINDPATH="$1"
find "$FINDPATH" -type f | file -i -F "::" -f - | awk -v FILETYPE="$2" -F"::" '$2 ~ FILETYPE { print $1 }'
答案 0 :(得分:6)
分叉(exec
)很贵。这只运行file
命令一次,因此速度很快:
find . -print | file -if - | grep "what you want" | awk -F: '{print $1}'
或
locate what.want | file -if -
检查man file
-i #print mime types
-f - #read filenames from the stdin
答案 1 :(得分:2)
#!/bin/bash
find $1 | file -if- | grep $2 | awk -F: '{print $1}'