【问题标题】:Ruby print directory flags?Ruby打印目录标志?
【发布时间】:2012-02-11 00:21:57
【问题描述】:

有没有办法在 Ruby 中为给定的Dir 打印当前的“chmod 标志”?

我不是权限专家,所以请原谅术语,但我想获取有关目录的所有可能信息(它是只读的,权限是什么等)。

编辑:我需要它在 Ruby 1.8.6 中工作

【问题讨论】:

    标签: ruby permissions directory chmod


    【解决方案1】:

    http://ruby-doc.org/core-1.9.3/File.html#method-c-world_readable-3F

    sprintf("%o", File.world_readable?("/"))
    

    Ruby 1.8.6 solution:

    sprintf("%o", File.stat("/").mode) #40755
    

    【讨论】:

    • @TonyR 查看我的编辑。它将以 4 开头,因为它是一个目录。
    • 效果很好,非常感谢 =) 虽然打印 File.stat 的结果是 040755 而 File.stat.mode 是 16877
    • @TonyR 您需要使用 sprintf 以八进制返回。
    • 认为是这样的。再次感谢。
    【解决方案2】:

    你可以用一点shell:

    `stat --format=%a #{Dir.pwd}`.chomp # => 755
    

    它不是纯红宝石,但我认为它可以完成工作。

    【讨论】:

    • 不错的选择,但我尽可能避免使用 shell。 Windows 不附带 stat
    猜你喜欢
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多