如何为所有文件类型设置“文件”输出换行符类型和编码?

如何为所有文件类型设置“文件”输出换行符类型和编码?

我经常发现自己需要检查文件的编码和换行符类型。

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 行终止符

相关内容