在unix上查找人类可读的文件

我想find我的Linux机器上没有文件扩展名约束的人类可读文件。 这些文件应该是文本,configuration,html,源代码等文件的人类感应文件。 你能build议一种方法来过滤和定位。

找到和文件是你的朋友在这里:

 find /dir/to/search -type f -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print 

这将找到任何文件(注意:它不会找到符号链接目录套接字等只有普通文件)在/目录/到/搜索和运行sh -c'文件-b {} | grep text> / dev / null'\; 它会查看文件的类型并在描述中查找文本。 如果这返回true(即文本在行中),那么它打印文件名。

注:使用-b标志来表示文件名不被打印,因此不能创建与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标志文件。 欲了解更多信息和标志文件见man文件

怎么样

find /dir/to/search -type f | xargs file | grep text

find会给你一个文件列表。

xargs file将在管道输入的每一行上运行file命令。

我用

  file directory/to/search/* 

例如,在一个名为home use的目录中只能找到人类可读的文件:

  file home/* 

并且可读文件将具有诸如ASCII文本的格式