Ruby 中 chmod +x 的等价物

Equivalent of chmod +x in Ruby

在Linux中,很容易"just"向文件添加可执行文件,只需输入:

chmod +x <fname>

然而,我没能在 Ruby 的精华中找到如此简单的东西。当然,也可以进行系统调用,即

system( 'chmod +x' << fname )

但是,我正在寻找更多的东西 'elegant'。

我正在使用 Ruby 1.8.7.

您可以使用 File.stat 读取当前模式,然后使用掩码按位“'or'”它来实现您想要的。这是一个示例(可以缩短):

current_mask = File.stat('foo.sh').mode new_mask = current_mask | '0000000000000001'.to_i(2) File.chmod(new_mask, 'foo.sh')

require "fileutils"

FileUtils.chmod("+x", "foo.sh")