LoginSignup
3
3

More than 5 years have passed since last update.

mkdir_p "~/foo"

Last updated at Posted at 2013-11-08
  • やりたかったこと

ホームディレクトリにディレクトリ「foo」をつくる。

  • やった結果
require 'fileutils'
FileUtils.mkdir_p "~/foo"

カレントディレクトリに、「~/foo」という階層のディレクトリができた。

  • 正解
require 'fileutils'
FileUtils.mkdir_p File.expand_path("~/foo")
  • わかったこと

"~" の展開があくまでシェルの機能であることを念頭に置かずにやってみたら、変なことになったというおバカな例でした。
正しく展開されないにしろ、何かしらのエラーになると予想していたところに "~" そのままのフォルダが作成された、というのも意外でした。
しかしこれもよくよく考えれば、シェルでも正しくエスケープすれば、「~*&!?"'<>(){}」 みたいなフォルダだって作れてしまうし、記号だからと言って特別扱いされる、という単純な話ではないということですね。

3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3