Ruby Tips!

RubyのTipsを紹介します

ファイルの情報を変更する

時刻

ファイルのアクセス時刻(atime)、更新時刻(mtime)を設定するにはFile.utimeを使う。

atime = mtime = Time.now
File.utime(atime, mtime, "hoge.txt")

これらの時刻を現在時刻に設定するのであれば、FiletUtils.touchも利用できる。

require 'filetutils'
FileUtils.touch("hoge.txt")

なお状態変更時刻(ctime)をRubyから変更する手段は存在しない。

パーミッション

ファイルのモードを変更するにはFile.chmodまたはFileUtils.chmodを使う。

File.chmod(0644, "hoge.txt")
FileUtils.chmod(0644, "hoge.txt")

ファイルの所有者を変更するにはFile.chownを使う。
引数に指定するのはユーザID、グループID、パスである。

File.chown(1000, 1000, "hoge.txt")

なおユーザ名からユーザID、グループIDを求めるにはetcライブラリのEtc.getpwnamが、グループ名からグループIDを求めるにはEtc.getgrnmaeが利用できる。