それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

File.rename でハマった。

File.rename はデバイスを超えてrename 出来ない。

File.rename を何気なく使っていました。 require 'fileutils' するのが面倒くさいという、それだけの理由で。

そして今日は見事にドハマリした。cron でエラーが出ているので追いかけてみたら。なんとrename出来ないというerror

File.rename # too bad

FileUtils.mv # good manner

まさか、ブロックデバイスが異なると rename 出来ないなんて予想もしなかった。システムコールがそうなってるんだろうけど。油断した。

パーティションを超えてコピーやリネーム、移動、ファイルの変更が発生するおそれがあるので、 File.rename はよほどのことがないと使ってはいけない。

require が面倒くさいとか言う理由で避けてた自分が馬鹿でした