Mac
新年になると、書類整理のために毎年同じ構造のフォルダを作成している
.
├── 2022
│ ├── dir-a
│ ├── dir-b
│ └── dir-c
├── 2023
│ ├── dir-a
│ ├── dir-b
│ └── dir-c
└── 2024
├── dir-a
├── dir-b
└── dir-c
とはいえ、これ毎年手作業でやるのもなと思い立った。
いつもは横着してJSで書きがちなんだけど、まぁこのくらいなら勉強も兼ねてシェル芸で挑戦することに。
処理の流れとしては 「前年度のフォルダ構成を参照 → 参照したフォルダ構成から新規作成するフォルダを作成」 というものを想定した。
毎年同じ構造のフォルダを作成 とか書いたのだが、たまにフォルダを変えてみたりして改善を試みていたりするので、
そのたびにシェル芸を書き直すのもな(シェルスクリプトにメモした)と思ったので、シェル芸に直接にフォルダ名を書きたくないなと思った。
なので、今年の場合だと 「2024年度のフォルダ構成を参照 → 参照したフォルダ構成から2025年度のフォルダを作成」 ということになる。
.
├── 2022
│ ├── dir-a
│ ├── dir-b
│ └── dir-c
├── 2023
│ ├── dir-a
│ ├── dir-b
│ └── dir-c
├── 2024
│ ├── dir-a
│ ├── dir-b
│ └── dir-c
└── 2025 <---- New!!
├── dir-a <---- New!!
├── dir-b <---- New!!
└── dir-c <---- New!!
このようなシェル芸になった。
ls -d1 ./$(date -v-1y -j "+%Y")/* | gawk -F'/' 'BEGIN{print strftime("./%Y/",systime())} {print strftime("./%Y/",systime())$3}' | xargs mkdir
もっと良いシェル芸とかもあるんだろうけど、これで動いたので、ひとまずコレでヨシ!🐈⬛とした。
まぁこのくらいなら とか書いておいて、何だかんだ使い慣れてないところもあって、それなりにモタモタした。
コマンドのことをネットで調べると、dateとかawkってMacと他OSで挙動が違ったりすることがあって、それでつまづいたりした。
通りすがりの投下