いくつかステップから実現していきます。
1. 任意のディレクトリにシェルを作る
-rfv
: 再帰的にディレクトリ/ファイルを削除し、削除したファイルについて出力させるためのオプションです。
~/Downloads/*
: ~/Downloads/
のように末尾をパスにしてしまうとダウンロードディレクトリまで削除対象になってしまうので、ワイルドカードを利用して指定ディレクトリ以下の全てのファイル/フォルダを対象にします。(ダウンロードディレクトリはsudo
をつけない限り削除できないようパーミッションが設定されているので、一応どちらでも問題ないはずですが)
empty_downloads_directory.sh
#!bin/bash
rm -rfv ~/Downloads/*
echo "-----------------------------------------------------------"
echo "Cleaning up Downloads directory is finished."
2. crontab
を利用する
「Macではlaunchdを使う」という記事もいくつか見ましたが、plistは極力触りたくなかったのでcronを使いました。
crontab -e
を入力する事で、viでcronの登録/編集をする事ができます。
自分はこのように毎週日曜日の夜23時にディレクトリの掃除を行うように登録しました。スクリプトのパスはご自分のものに置き換えてください。
# 毎週日曜日の夜にダウンロードディレクトリを綺麗にするスクリプトを実行する. format: 分 時 日 月 曜日 スクリプト
0 23 * * 7 sh /Users/UserName/Documents/Scripts/empty_downloads_directory.sh
3. フルディスクアクセスを与える
Catalina以降は、ディスクアクセスの権限を適切に与えないとcronの実行ができないようになっているようなので、以下のサイトを参考にしながらアクセスを与えます。