sbcl确定是否符号链接

时间:2015-10-03 20:37:15

标签: common-lisp symlink sbcl

如何在sbcl中测试路径名是否为符号链接?

CL-USER> (apropos "syml" )
:CLASSIFY-SYMLINKS (bound)
:RESOLVE-SYMLINKS (bound)
:SYMLINK (bound)
SB-IMPL::CLASSIFY-SYMLINKS
SB-IMPL::RESOLVE-PROBLEMATIC-SYMLINK
SB-IMPL::RESOLVE-SYMLINKS
SB-POSIX:SYMLINK (fbound)
UIOP/FILESYSTEM:*RESOLVE-SYMLINKS* (bound)
UIOP/FILESYSTEM:RESOLVE-SYMLINKS (fbound)
UIOP/FILESYSTEM:RESOLVE-SYMLINKS* (fbound)
UTIL::CLASSIFY-SYMLINKS
UTIL::SYMLINK
; No value

这些似乎都没用。 classify-symlinks似乎是一个关键字。

2 个答案:

答案 0 :(得分:3)

TL; DR

IDependencyResolver

要回答一个人必须首先要问的问题,如何判断某事物(我认为是文件描述符)是否是posix中的符号链接。男子2统计救援。从联机帮助页

  •   

    lstat()与stat()相同,只是如果path是asymbolic链接,那么链接本身是stated ed,而不是它引用的文件。

  •   

    定义以下POSIX宏以使用st_mode字段检查文件类型:

  •   

    S_ISLNK(m)符号链接? (不在POSIX.1-1996中。)

答案 1 :(得分:0)

osicat 有函数 file-kind 可以检测符号链接:

(ql:quickload "osicat")

(equalp :symbolic-link (osicat:file-kind "/some/path"))

更新:此功能有问题,如果您使用 "/some/path/" 则无法使用。 (注意尾部斜杠。)