日付入りディレクトリ作成と同時に cd でディレクトリ移動させたい
TL; DR(概要)
やりたいこと
私ですが、「Desktop/Temp」ディレクトリ配下に、毎日、日付が入った作業ディレクトリを切ってそこに移動。作業用ディレクトリとしつつ、日報として作業内容を振り返るのに利用しています。
が、history使って毎回同じコマンドでやりたいので色々と調べてみました。
結論
以下コマンドを叩くと、ディレクトリ作成と同時にカレントディレクトリ移動できます。
mkdir ~/Desktop/Temp/`date +%Y-%m-%d` && cd "$_"
Detail
mkdir ~/Desktop/Temp/`date +%Y-%m-%d` && cd "$_"
/Users/hotaka-noda/Desktop/Temp/2022-08-14
pwd
/Users/hotaka-noda/Desktop/Temp/2022-08-14
cd ..
ls
2022-08-14
解説
今行っている作業を分解する
作業を分解すると以下となります
(1)「Desktop/Temp」に移動して
(2) 今日は何日なのかを考えて
(3) (2)で考えた、ディレクトリを作成して
(4) 作成したディレクトリへ移動する
やりたいこと
どこのディレクトリであっても、history使って毎回同じコマンドでやりたい
注意事項
dateコマンドのOS差異
MacOSはBSD Unixベースであり、GUN Linuxとコマンドの挙動が若干異なり、dateコマンドはオプション指定方法が若干異なります。
そのため、サーバレスアーキテクチャ(AWS Lambda , Google Cloud Cloud Functions)に移植する際は注意が必要です。
今回は表示させてフォーマットに入れる動作となります、差異がないため問題ないです。
時刻計算する際は差異があります。
(過去にハマりました。)
補足
「~」とは?
ホームディレクトリのパスを参照します。
Detail
cd ~ && pwd
/Users/hotaka-noda
※「/Users/ユーザー名」を返します。
特殊変数「$_」とは?
利用している特殊変数「$_」は、直前に利用していたコマンドの最後の引数を参照します。
Detail
ls | grep 2022
2022-08-11
2022-08-12
2022-08-13
2022-08-14
echo $_
2022
利用環境
sw_vers
ProductName: macOS
ProductVersion: 12.5
BuildVersion: 21G72
参考
Discussion