🍎
macでシステム終了をフックする
バージョンはmacOS Sonoma 14.4.1です。 スクリプトエディタ(AppleScript)が使える環境なら多分できると思います。
やりたいこと
個人的にディレクトリ分けはそこそこしっかり管理する派なのですが、$HOME/Downloads
以下は管理が行き届きづらいです。そこで、システム終了時に全て消すようにしたいです。
実行したいスクリプトを用意する
今回の場合はDownloads以下を全て強制で消すようにすれば良いでしょう。
#!/bin/sh
rm -rf $HOME/Downloads/*
実行権限の付与を忘れるとファイルが消されないので注意。
chmod +x /path/to/prepare/script
システム終了をフックする
スクリプトエディタを開いて、適当なディレクトリ以下に新規作成します。以下のようなスクリプトを書きます。
on quit
do shell script "/path/to/prepare/script"
continue quit
end quit
書けたらアプリケーションとして保存(ファイルフォーマットで「アプリケーション」を指定)します。
アプリケーションは実行しないと動いてくれないので、実行します。Finderからダブルクリックでも起動できますが、起動毎に毎回アプリケーションを手動で起動するのは面倒なので設定→一般→ログイン項目から作成したアプリケーションをログイン時に開くように設定します。これで次回起動以降のシステム終了時にシステム終了(quit)がフックされて、do shell script以下に指定したスクリプトを呼び出すことができます。
Discussion