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")
在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")