问题描述
在 shell 中是否有类似 file
之类的东西,用于 lisp 来确定文件类型?如果不是,你如何确定文件类型?
在大多数情况下,pathname-type
已经足够好,但有时您可能会遇到某些文件没有正确命名的情况。
解决方法
file
的功能在 libmagic
中可用:
从 Ian Darwin/Christos Zoulas 文件的 4.00 版开始,文件的功能被合并到一个 libmagic 库中,该库可通过 C(和 C 兼容)链接访问;[7][8]文件是使用该库实现的。
还有一个针对 Common Lisp 的绑定。
我必须在我的系统上安装 libmagic-dev
,然后:
CL-USER> (ql:quickload :magicffi)
...
(:MAGICFFI)
CL-USER> (magicffi:pathname-mime #P"/bin/ls")
"application/x-sharedlib; charset=binary"
见MAGICFFI
。