我正在使用 ubuntu 18.04 LTS,我使用file -i
和find
其他 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).