Bash:计算文件和相应的mime类型不匹配

时间:2015-12-11 09:00:44

标签: bash mime-types

我想在目录及其子目录中构建所有地雷类型的直方图。我有两个命令

find dir/ -type f | xargs file --mime-type | awk '{print $2}' | wc -l
// returns 22690

find dir/ -type f | wc -l
// return 12097

那么这种不匹配来自何处以及如何解决这个问题?\

此外,使用

创建直方图时
find dir/ -type f | xargs file --mime-type | awk '{print $2}' | sort -n | uniq -c

我得到了这个大桶cannot mime-type,大约有15000次点击和一些inode/directory次点击,因为我使用type选项运行文件所以不会发生这种点击。我有点困惑这一切都来自。

1 个答案:

答案 0 :(得分:1)

某些文件名称中是否包含空格?如果是这样,您必须使用-print0操作而不是隐式print(以及--null的{​​{1}}对应选项:

  

-print0                 真正;在标准输出上打印完整的文件名,后跟一个空字符(而不是换行符    - 印刷用途)。这允许包含换行符的文件名                 或者由处理查找输出的程序正确解释的其他类型的空格。这个选项   对应于xargs的-0选项。

所以,在你的情况下(编辑:简化归功于flowit的评论):

xarg