概要
File.chown
詳細
ファイルの所有者とグループを変更します。
第一引数に所有者IDを表す数値。
第二引数にグループIDを表す数値。
第三引数以降に対象のファイル名を列挙します。
第一、二引数にnilか-1を設定すると変更されません。
戻り値は変更されたファイル数です。
サンプル
コード
# encoding: utf-8 def create_file(filename, contents) File.open(filename, 'w:utf-8') do |f| f.print contents end end def get_permission_file_name(filename) sample_info = `ls -ltra | grep #{filename}` ret = sample_info.gsub(/\s+/, "\s").split(' ').reverse "#{ret[0]}|#{ret[5]}|#{ret[6]}\n#{ret[9]}|#{ret[14]}|#{ret[15]}" end def print_header puts "filename|group|id" end filenames = ['sample1.txt', 'sample2.txt'] filenames.each do |filename| File.delete(filename) if File.exists?(filename) create_file filename, <<-EOS 内容1_1 内容1_2 内容1_3 EOS end print_header puts get_permission_file_name('sample') change_count = File.chown(nil, 1003, 'sample1.txt', 'sample2.txt') puts '----------------------------------' print_header puts get_permission_file_name('sample') puts change_count puts '----------------------------------' print_header change_count = File.chown(1000, -1, 'sample1.txt', 'sample2.txt') puts get_permission_file_name('sample') puts change_count
出力
filename|group|id sample1.txt|root|root sample2.txt|root|root ---------------------------------- filename|group|id sample1.txt|git|root sample2.txt|git|root 2 ---------------------------------- filename|group|id sample1.txt|git|vagrant sample2.txt|git|vagrant 2