2016-03-07 44 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")