(改良版)macOSで撮ったスクリーンショットを日付フォルダへ自動で振り分ける

以前書いたこの記事の改良版です。 sakanaaas.hateblo.jp

その記事のスクリプトは問題なく動いていたのですが、フォルダが増えてくると見づらいよね問題がでてきました。

こんな感じ。 f:id:ykarakita:20170819191107p:plain

月が変わったら前月のフォルダはひとまとめにしたい!

処理の流れ

  1. 日ごとのフォルダが追加されたら前月のまとめフォルダがあるか確認、無かったら月が変わったとみなす。
  2. まとめフォルダ作成。
  3. 前月のフォルダをまとめフォルダにアーカイブ

後半が追加した部分。

bashIFS=$'\n'

ssdir=/Users/[ユーザー名]/Pictures/ScreenShots
today=$(date +"%Y%m%d")
this_month=$(date +"%Y%m")
last_month=$(date -v -1m +"%Y%m")

for input in "$@"
do

if [ -f $input ]; then
    if [ ! -d $ssdir/$today ]; then
        mkdir $ssdir/$today
    fi  
    mv $input $ssdir/$today
fi

input_name=${input##*/}
# 8桁の数字のフォルダか確認
if [ -d $input ] && [ $input_name=[0-9]{8} ]; then
    # 前月のアーカイブフォルダがあるか確認
    if [ ! -e $ssdir/$last_month ]; then
        # 無かったら作る
        mkdir $ssdir/$last_month

        # $ssdir内の前月のフォルダを1つのフォルダにまとめる
        mv $ssdir/${last_month}[0-9][0-9] $ssdir/$last_month
    fi
fi

done

こんな感じにできたよん。 f:id:ykarakita:20170819192452p:plain

運用でカバー

まとめ

夏、雨。