如何访问ctime、mtime、…符号链接?
在 UNIX 上,符号链接是指向另一个文件的指针。不仅文件而且符号链接都有 ctime、mtime、...。我知道可以访问符号链接时间,正如 ls 显示的那样。如果我使用 ruby 的 File#ctime 、 File#mtime 等之一,我总是获得符号链接指向的文件的属性,而不是符号链接的属性。我怎样才能在红宝石中读取这个值?如果这在 ruby 中不可能,请告诉我如何在 C 中做到这一点。在这种情况下,我会编写自己的 c 扩展。
On unix symlinks are pointers to another file. Not only the file but also the symlink has a ctime, mtime, …. I know the symlinks time can be accessed, as ls
displays it. If I use one of ruby's File#ctime
, File#mtime
, …, I always get the attribute of the file the symlink is pointing to, not of the symlink. How can I read this values in ruby? If this is not possible in ruby, tell me how to do it in C. I would write my own c extension in that case.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
File#lstat()
。例子:Use
File#lstat()
. Example:lstat()
可以用 C 实现;不确定是否有 Ruby 等效项。lstat()
can do it in C; not sure if there's a Ruby equivalent.不仅有符号链接的属性和最终目标的属性,而且如果符号链接本身是另一个符号链接,则还有一个或多个中间步骤;要获取所有属性,您需要在 readlink 循环中执行 lstats。
There're not only the attributes of the symlink and the attributes of the final target, but also, if the symlink is itself to another symlink, one or more intermediate steps; to get all the attributes, you'd need to do lstats in a readlink loop.