如何在 Lisp 中确定文件类型

How to determine file type in Lisp

在shell中是否有类似file的东西让lisp判断文件类型?如果不是,你如何确定文件类型?

在大多数情况下 pathname-type 就足够了,但有时您可能 运行 某些文件没有正确命名。

file 的功能在 libmagic 中可用:

As of version 4.00 of the Ian Darwin/Christos Zoulas version of file, the functionality of file is incorporated into a libmagic library that is accessible via C (and C-compatible) linking;[7][8] file is implemented using that library.

Wikipedia

并且有一个针对 Common Lisp 的绑定。

我必须在我的系统上安装 libmagic-dev,然后:

CL-USER> (ql:quickload :magicffi)
... 
(:MAGICFFI)

CL-USER> (magicffi:pathname-mime #P"/bin/ls")
"application/x-sharedlib; charset=binary"

MAGICFFI