文件 -i 与文件属性准确性,如何检查文件是否为文本文件

文件 -i 与文件属性准确性,如何检查文件是否为文本文件

我正在使用 ubuntu 18.04 LTS,我使用file -ifind其他 shell 命令来生成文件夹内的文本文件列表,它的运行效率高达 99.9%,但也有一些例外

file -i,它说text/plain

$ ls -al
total 520
drwxr-xr-x 2 pi pi   4096 Dec 16 17:58 .
drwxr-xr-x 4 pi pi   4096 Dec 16 17:58 ..
-rw-r--r-- 1 pi pi 262144 Dec 16 17:58 NvStorageFtwSpare.bin

$ file -i NvStorageFtwSpare.bin
NvStorageFtwSpare.bin: text/plain; charset=iso-8859-1

而从文件属性来看,它表示的是二进制

在此处输入图片描述

我使用 textedit 查看了文件内容,它确实是二进制的,那么如何获取有关文件是否为文本文件的准确信息?谢谢!

答案1

man file说:

file 测试每个参数以尝试对其进行分类。有三组测试按以下顺序执行:文件系统测试、魔术测试和语言测试。第一个成功的测试会导致打印文件类型。

您可以尝试以下选项:

 -k, --keep-going
         Don't stop at the first match, keep going.  Subsequent matches will be have the string ‘\012- ’ prepended.  (If you want a
         newline, see the -r option.)  The magic pattern with the highest strength (see the -l option) comes first.

 -l, --list
         Shows a list of patterns and their strength sorted descending by magic(5) strength which is used for the matching (see also
         the -k option).

相关内容