`File.info(string)/File::Info.new(string)` 是否解析符号链接?
Does `File.info(string)/File::Info.new(string)` resolve symbolic links?
我正在使用 Crystal 0.25.0 和 File.info(string).symlink?
returns false,但在以下示例中它应该 return true:
`mkdir -p /tmp/delete`
Dir.cd "/tmp/delete"
`rm -f b`
`touch a`
`ln -s a b`
puts File.info("b").symlink?.inspect # false
puts File.info("b").type # File
puts Process.run("test", "-L b".split).success? # true
puts Process.run("test", "-L a".split).success? # false
看来解决了link。这是预期的行为吗?
是的,File.info
默认遵循符号链接。这是预期的行为,但您可以通过将 follow_symlinks: false
传递给方法来禁用它:
File.info("b", follow_symlinks: false).symlink? # => true
此行为记录在 API 文档的 File.info
下。
如果您不需要 File::Info
实例,您可以只使用 File.symlink?
,它实际上调用 info(path, follow_symlinks: false).symlink?
.
我正在使用 Crystal 0.25.0 和 File.info(string).symlink?
returns false,但在以下示例中它应该 return true:
`mkdir -p /tmp/delete`
Dir.cd "/tmp/delete"
`rm -f b`
`touch a`
`ln -s a b`
puts File.info("b").symlink?.inspect # false
puts File.info("b").type # File
puts Process.run("test", "-L b".split).success? # true
puts Process.run("test", "-L a".split).success? # false
看来解决了link。这是预期的行为吗?
是的,File.info
默认遵循符号链接。这是预期的行为,但您可以通过将 follow_symlinks: false
传递给方法来禁用它:
File.info("b", follow_symlinks: false).symlink? # => true
此行为记录在 API 文档的 File.info
下。
如果您不需要 File::Info
实例,您可以只使用 File.symlink?
,它实际上调用 info(path, follow_symlinks: false).symlink?
.