Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

Macのコマンドラインで明日を表現する方法

$
0
0

macのdate表現で困った

macユーザーになってまだ3ヶ月の私にとっては、bashのdateコマンドすら手強い相手でした。
今回、目的にあった形で日付の表現をするのに、小一時間以上かかってしまい軽く自分にショックを受けてしまいました。

他のmacビギナーにとっても日付の表現で時間を多く無駄にしてしまうことはショッキングなことだと思ったので、ここにナリッジをまとめておきたいと考えました。

そもそも:macのコマンドラインで日付表現をしたかったわけ

macにはautomatorという非常に便利なツールがあることを最近になって知りました。
これを使えば、macに最初から入っているツールを組み合わせて、自分好みの自動化アプリケーションを簡単に作ることができます。

今回は、毎日の日記を自動で作成するアプリケーションを作るために、bashで日付表現を使う必要がありました。

date -d '1 days'では明日を表せない?

検索ボックスで、「bash 日付」と打ってでてきたのが、見出しのワンライナーでした。

bash
date-d'1 days'

これで、明日の日付を取得して自動でファイルの作成ができる!
と思ったら...これがうまく行かないのです。

というのも、この表記はGNUとよばれるパターンの表記方法だったのです。

GNUって?

GNUはwindowsのコマンドラインでの書き方になります。
ところが、私はmacユーザー。
どうりでこの表現ができないわけですね。

windowsがGNUならMacは

もちろんmacにも明日の表現方法はあります。
macの表現方法はBSDと呼ばれる表記方法になるそうです。

BSD表記になると、明日を表すコマンドは以下の通り。

bash
date-v+1d

よかった!macでも簡単に表現できました!

こうして、``(バッククォーテ)を組み合わせたところ、
念願の「本日付けのファイルをコピーして明日の日付のファイルを作成する」ことができました!

bash
cp`date +%Y%m%d`.txt `date-v+1d +%Y%m%d`.txt

Viewing all articles
Browse latest Browse all 2722

Trending Articles