我想在目录及其子目录中构建所有地雷类型的直方图。我有两个命令
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选项运行文件所以不会发生这种点击。我有点困惑这一切都来自。
答案 0 :(得分:1)
某些文件名称中是否包含空格?如果是这样,您必须使用-print0
操作而不是隐式print
(以及--null
的{{1}}对应选项:
-print0 真正;在标准输出上打印完整的文件名,后跟一个空字符(而不是换行符 - 印刷用途)。这允许包含换行符的文件名 或者由处理查找输出的程序正确解释的其他类型的空格。这个选项 对应于xargs的-0选项。
所以,在你的情况下(编辑:简化归功于flowit的评论):
xarg