我在 win32 上使用
$ file -v
file-5.03
magic file from C:\PROGRA~1\gnuwin32/share/misc/magic
但它给出了奇怪的结果
foo.css; text/x-c; charset=utf-8
json2.js; text/x-c; charset=us-ascii
foo.js; text/x-c++; charset=utf-8
bar.js; text/plain; charset=utf-8
有人得到类似的结果吗?更好的结果?有人知道替代方案吗?
谢谢
最佳答案
我不认为 file(1) 命令可以做到这一点。 "file"命令在文件中查找魔法字符串——例如GIF 文件开头的字符串“GIF89a”。 CSS 和 JS 文件不能像这样 self 识别,所以你必须做一些更复杂的事情。
如果您可以访问服务器返回的 Content-Type header ,这将比尝试通过查看文件内容来猜测类型可靠得多。
如果您只有文件内容,您可以自己搜索不太可能出现在 CSS 文件中的字符串,例如“function”或“var”。如果你找到它们,它可能是 JavaScript。这当然是一种不完美的启发式方法 - 可能有一个名为“function.png”的背景图像。
反之则更容易出错,因为 JavaScript 可以操纵 CSS 样式……在 JS 文件中找到诸如“text-decoration”之类的 CSS 属性并不罕见。
或者您可以尝试通过 CSS 或 JS 解析器运行该文件。如果在解析为 CSS 时出现大量错误,则它可能不是 CSS 文件:)。
关于javascript - 替代 file(1) for javascript/css mimetype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1783751/