Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Dir.chdir

概要

Dir.chdir

詳細

Dir.chdirはディレクトリを移動します。

chdir
chdir(path) -> 0
chdir {|path| ... } -> object
chdir(path) {|path| ... } -> object

pathで指定したディレクトリに移動します。
path省略時はホームディレクトリに移動します。
ブロック指定時はブロックの範囲内のみで移動が適用されます。

コード

/home/sample/20131027_chdir ディレクトリで作業している前提

# encoding: utf-8
require "pp"

# ディレクトリ作成
Dir.mkdir "hoge" unless File.exists? "hoge"
Dir.chdir './hoge' do
  `echo hoge > hoge.txt`
  `echo hige > hige.txt`
  `echo hage > hage.txt`
  Dir.mkdir "hoge" unless File.exists? "hoge"
  Dir.chdir './hoge' do
    `echo hoge > hoge.txt`
    `echo hige > hige.txt`
    `echo hage > hage.txt`
  end
end

def print_line
  puts "-------------------------------------------"
end

puts `tree`
print_line
puts Dir.pwd
print_line
Dir.chdir "hoge"
puts Dir.pwd
print_line
Dir.chdir {puts Dir.pwd}
print_line
puts Dir.pwd
print_line
Dir.chdir
puts Dir.pwd
出力確認
└─hoge
    │  hage.txt
    │  hige.txt
    │  hoge.txt
    │
    └─hoge
            hage.txt
            hige.txt
            hoge.txt
-------------------------------------------
/home/sample/20131027_chdir
-------------------------------------------
/home/sample/20131027_chdir/hoge
-------------------------------------------
/home/sample
-------------------------------------------
/home/sample/20131027_chdir/hoge
-------------------------------------------
/home/sample