我经常发现自己需要检查文件的编码和换行符类型。
该file
实用程序似乎非常适合。不幸的是,它不能输出所有文件类型所需的信息。例如,它不会对.php
文件执行此操作。
例如:
file extra.module.php
extra.module.php:PHP脚本文本
但是,如果我将文件重命名为.txt
并删除 PHP 起始标记,它将输出两者。
file extra.module.txt
extra.module.txt:UTF-8 Unicode C++ 程序文本,带有 CRLF 行终止符
我已经查看了联机帮助页,我可以使用-i
开关强制输出字符编码,但似乎没有换行符类型的开关。
是否有一个简单的解决方案,无需先重命名/更改文件?
答案1
根据 @don_crissti 的评论,事实证明,传递一个空的 magicfile 将file
使其回退到检测默认的 ASCII。
所以file -m /dev/null extra.module.php
在这种情况下会完成这个技巧并输出所需的
extra.module.php:UTF-8 Unicode C++ 程序文本,带有 CRLF 行终止符