2016-03-07 36 views
1

在Linux中,它是很容易“只是”可执行添加到一个文件,只需输入:等效CHMOD的+ X中的Ruby

chmod +x <fname> 

不过,我并没有发现在容易事红宝石。当然,可以进行系统调用,即

system('chmod +x' << fname) 

然而,我正在寻找更优雅的东西。

我正在使用Ruby 1.8.7。

+1

也许,这将是有用的:http://ruby-doc.org/stdlib-2.2.2/libdoc/fileutils/rdoc/ FileUtils.html#method-c-chmod – Lix

+0

确实如此。不幸的是,我有一个搜索选项的Ruby 1.8.7,它没有它......嗯,2个问题解决了1的价格... – user1134991

+0

哦 - 我明白了......这可能是一个好主意包括你正在使用的ruby版本(特别是如果它是你的一个限制) – Lix

回答

1

您可以使用File.stat来读取当前模式,然后按照'''或'''的方式将其与掩码按位取得,以达到您想要的效果。下面是一个示例(可以缩短):

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

1
require "fileutils" 

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