2016-03-07 6 views
1

В Linux, это очень легко «просто», чтобы добавить исполняемый файл, просто путем ввода:Эквивалент CHMOD + х в Рубине

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

О, я вижу ... Это может быть хорошая идея чтобы включить рубиновую версию, с которой вы работаете (особенно если это одно из ваших ограничений) – 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')