概要
RubyのFileUtils.mvで*(アスタリスク)を使用したワイルドカード指定や、ディレクトリの上書きはできないから、やり方気をつけようね。という話。
*(アスタリスク)を使ってワイルドカード指定を行う
Dir.globを使って配列で渡してあげます。
# これだとエラー
FileUtils.mv(“/tmp/a/*.csv”, “/tmp/b/“)
# Dir.globを使えば解決
FileUtils.mv(Dir.glob(“/tmp/a/*.csv”), “/tmp/b/“)
ディレクトリを上書きしてmvする
結論から言うとディレクトリを一度削除してからmvします。(他にいい方法があるなら教えてほしい…)
# ディレトクリが存在することを確認して消す
FileUtils.rm_rf(“/tmp/b/”) if Dir.exist?(“/tmp/b/”)
# ディレクトリを作る
FileUtils.mkdir_p(“/tmp/b/”)
# mvする
FileUtils.mv(“/tmp/a/”, “/tmp/b/“)
コメント