在Linux中,它是很容易“只是”可执行添加到一个文件,只需输入:等效CHMOD的+ X中的Ruby
chmod +x <fname>
不过,我并没有发现在容易事红宝石。当然,可以进行系统调用,即
system('chmod +x' << fname)
然而,我正在寻找更优雅的东西。
我正在使用Ruby 1.8.7。
在Linux中,它是很容易“只是”可执行添加到一个文件,只需输入:等效CHMOD的+ X中的Ruby
chmod +x <fname>
不过,我并没有发现在容易事红宝石。当然,可以进行系统调用,即
system('chmod +x' << fname)
然而,我正在寻找更优雅的东西。
我正在使用Ruby 1.8.7。
您可以使用File.stat
来读取当前模式,然后按照'''或'''的方式将其与掩码按位取得,以达到您想要的效果。下面是一个示例(可以缩短):
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")
也许,这将是有用的:http://ruby-doc.org/stdlib-2.2.2/libdoc/fileutils/rdoc/ FileUtils.html#method-c-chmod – Lix
确实如此。不幸的是,我有一个搜索选项的Ruby 1.8.7,它没有它......嗯,2个问题解决了1的价格... – user1134991
哦 - 我明白了......这可能是一个好主意包括你正在使用的ruby版本(特别是如果它是你的一个限制) – Lix