我想找到我的Linux机器上的人类可读的文件,没有文件扩展名的约束。 这些文件应该是一样的文字,配置,HTML源代码等文件,人体感应的文件。 你可以建议的方式来筛选和定位。
Answer 1:
发现和文件是你的朋友在这里:
find /dir/to/search -type f -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
这会找到任何文件(注意:它不会找到符号链接的目录插座等唯一的规则文件)/目录/至/搜索和运行的sh -c“文件-b {} | grep的文本&>的/ dev / null的” \; 它着眼于文件的类型,并查找在说明文字。 如果返回true(即文本是在该行),那么它打印的文件名。
注:使用-b标志filemeans未打印的文件名,因此无法创建与grep的任何问题。 例如,没有-b标志二进制文件的gettext将被错误地检测为一个文本文件。
例如
root@osdevel-pete# find /bin -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
/bin/gunzip
/bin/svnshell.sh
/bin/unicode_stop
/bin/unicode_start
/bin/zcat
/bin/redhat_lsb_init
root@osdevel-pete# find /bin -type f -name *text*
/bin/gettext
编辑:
如果你想在压缩文件中查找使用--uncompress标志文件。 获取更多信息和标志,以文件中看到男子文件
Answer 2:
怎么样
find /dir/to/search -type f | xargs file | grep text
find
会给你的文件列表。
xargs file
将运行file
上的每个从管道输入的线的命令。
Answer 3:
我用
file directory/to/search/*
例如,要查找一个目录中称为家庭只使用人类可读的文件:
file home/*
和可读的文件将有一个格式,如ASCII文本
文章来源: Finding human-readable files on unix