今日の日付で自動的にフォルダを作る

ちょっとアイディアを思いついたので作ってみた。Gistに置いた。

これだけのちょっとしたやつ。

これは何?

今日の日付を名前にしてフォルダを作りたいことがときどきある。なんかわかんないけど、いろんな場面でそういうことがある。

いちいち作るのは面倒なので、手軽にしたい。

そこで以下のような仕様を考えた。

  • 指定したフォルダ内に、日付を名前にしたフォルダを作る。
    • フォルダ名のルールは YYYYMMDD + 連番(2桁) って感じ。例えば「2014031801」となる。
  • 作ったフォルダが空っぽの間は何もしない。
  • 作ったフォルダに何かファイルが置かれたら、連番を1つ増やして新しいフォルダを作る。
  • 日付が変わったら、前の日の空っぽのフォルダを新しい日付で作り直す。

つまり、必ず空っぽのフォルダが1つだけ用意されている感じ。そこに何かファイルを入れたら、新しい空っぽのフォルダを自動で作る。そのまま日付が変わったら、新しい日付で作り直す。

使い方

適当な場所にスクリプトを置いて実行権限を与える。自分の場合は ~/bin/mkdirdate に置いた。

これをcronで1分おきに実行するようにする。

* * * * * ~/bin/mkdirdate ~/Desktop > /dev/null 2>&1

こんな感じ。コマンドラインオプションでフォルダの作成場所を指定している。今回はデスクトップにしてみた。

全自動じゃなくても

cron以外でも、パスを通しておけば、mkdirdateコマンドとして使えるようになる。

コマンドラインオプションを渡さない場合はカレントディレクトリに作るようになってる。つまり、コマンドを叩くだけで、今いる場所に日付のディレクトリを作る。すでにその名前のディレクトリが存在していて中身が入ってる場合は、連番を1つ増やしてディレクトリを作る。

まああんまりそういう使い方は想定してないけど。

以前も作ったことがあった

ちなみに以前こういうのを作ったことがあった。

2009年の話。当時はWindowsを使っていた。今はWindowsは使ってない。しかもこれは自動じゃなくて手動。プログラムを手動で実行するとフォルダが作成され(てクリップボードにコピーされ)るという仕組みだった。

今回は、OS XLinuxで動くようにRubyで書いて、しかも全自動になるようにした。今回の方がいい感じな気がする。

おわり

「自動であらかじめフォルダを作っておいて、その中にファイルが入れられたら、さらに次の新しいフォルダを作る」というアイディアを思いついたので作ってみたという感じ。まださっき作ったばかりなので、本当に実用的なのかどうかわかってない。