TL;DR
日々のダウンロードで乱雑になりがちな macOS のダウンロードフォルダですが、ここにフォルダアクションを設定することで、古いものを自動削除させるという小ネタです。ずっと前に同様のネタを、シェルスクリプト + crontab で解決する方法で書きましたが、トリガを crontab からフォルダアクションに変えただけで、やってることはだいたい同じですw
手順
- Automator を起動して、「ファイル」>「新規」から、書類の種類で 「フォルダアクション」 を選択。
- 画面上部の「フォルダアクションは、次の場所に追加されたファイルやフォルダを受け取ります:」のプルダウンから、対象にしたいフォルダを選択。
- 画面左側のライブラリから「ライブラリ」>「ユーティリティ」> 「シェルスクリプトを実行」 を右側のワークフローエリアにドラッグ&ドロップ。
- 設定を以下のように変更。
- シェル: /bin/zsh
- 入力の引き渡し方法: 「引数として」
- シェル: /bin/zsh
- 表示されているコードをすべて消去し、以下のコードに書き換える。
# フォルダアクションのトリガーとなったファイルから、対象フォルダのパスを取得 TARGET_DIR=$(dirname "$1") # 30日以上経過したファイルをゴミ箱に移動(フォルダ内のファイルやフォルダは辿らないように -maxdepth 1 を指定) find "$TARGET_DIR" -maxdepth 1 -mtime +30 -exec mv {} ~/.Trash/ \;
- Command + S で保存。名前は「30日経過ファイルをゴミ箱へ」。
これでダウンロードファイルを保存するタイミングでフォルダアクションが実行され、直近30日以内のものだけが残るようになります。
最近はちょっとしたことなら AI がすぐに答えを出してくれるので、本ブログでやっているような小ネタ系アウトプットはあまり意味が無いんじゃないかとポストが滞りがちですが、その AI もネットから学習している訳なので、持ちつ持たれつなのかなぁと自分を納得させつつ書きましたw












