.bashrc
ISO日付というフォルダにマークダウンやテキストファイルを作成できるようにエイリアスを作成したいと思います。グリニッジ標準時次にエディタでファイルを開きます。
これは私の予想出力(はい)です。
./20211226220131/readme.md
とreadme.md
で開かれましたvim
。
ベストアンサー1
bash
バージョン4.2以降を使用しているとします。
edmd () {
local now
TZ=GMT printf -v now '%(%Y%m%d%H%M%S)T' -1
mkdir "$now" && "${EDITOR:-vim}" "$now/readme.md"
}
now
このシェル関数は、GMTタイムゾーンの現在のタイムスタンプを含むローカル変数を生成します。その後、このタイムスタンプを使用して名前付きディレクトリを作成します。成功した場合は、readme.md
必要なエディタを使用するか、ディレクトリが空または設定されていないvim
場合はそのディレクトリ内のファイルを編集できます。EDITOR
このシェル関数は通常、エイリアスを宣言するたびに宣言され、次のように使用されます。
$ edmd
シェル機能は外部ユーティリティに依存せず、date
誤って現在の作業ディレクトリを変更することはできません。
テスト:
$ edmd
(私のエディタが開いたら、何かを入力してファイルを保存してエディタを終了します。)
$ tree
.
`-- 20211226092420
`-- readme.md
1 directory, 1 file
また、日付と時刻のISO 8601形式は、次のように書かれています。
- 「2021-12-26T14:52:04Z」または
- 「20211226T145204Z」
UTCタイムゾーンまたは
- 「2021-12-26T14:52:04+00:00」
...ここで「00:00」はUTCに基づく時間オフセットを提供します。
したがって、使用することができます
TZ=UTC printf -v now '%(%Y-%m-%d-T%H:%M:%SZ)T' -1
または
TZ=UTC printf -v now '%(%Y%m%dT%H%M%SZ)T' -1
または
TZ=GMT printf -v now '%(%Y-%m-%d-T%H:%M:%S%z)T' -1
...「ISO日付」を取得します。