0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

touchでディレクトリがなければmkdir -pしてくれるコマンドをgemにした話。(touch_p)

Last updated at Posted at 2021-06-30

#はじめに
ファイル作ろー。親ディレクトリないけどtouch-pオプションつければ大丈夫!(だよな?)

$ touch -p parent_hoge/child_hoge
touch: illegal option -- p
~略~

あれ?touchコマンドにpオプションなかったっけ?mkdirにはあるのに!

みなさんも一度はこのミスをしたことがありますよね?(この記事にたどり着いたということはあるに違いない!)
しかし、ここで怒ってはいけません。
そもそもtouchはファイルのタイムスタンプを更新するコマンドなので、ディレクトリに対する操作がないのは当然です。

かといってmkdirtouch2回もコマンドを実行するのは煩わしいですよね?

そこで!上記の挙動をするcliをgemで作ってしまいました!
とりあえずgemのページとソースコードです。

使い方

まず、gemをインストールします

$ gem install touch_p

あとは通常のtouchmkdirのように使うだけです。

パターン1 hoge/hogeのとき

$ tree
.
$ touch_p parent_hoge/child_hoge
$ tree
.
└── parent_hoge
    └── child_hoge
1 directory, 1 file

パターン2 hoge/のとき

$ tree
.
$ touch_p hoge/
$ tree
.
└── hoge
1 directory, 0 files

gemにした理由

すでにshellスクリプトで実装する記事もたくさんありますし、新たにgemで作る必要はありませんでした。
ただRubyを使用しているプログラマとしてgemの仕様を知っておくべきだ思ったので、思い切ってgemで作成することにしました。

gemの作成にあたり参考にした記事

gemの作り方から公開まで
rspec入門

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?