2014/08/26(Tue) サービス開発
鈴木 弦

[Tips] シェルスクリプトを使って定期的にデスクトップを断捨離する方法

mac

こんにちは、エンジニアの鈴木です。
突然ですが、PCのデスクトップはきれいですか?背景画像はちゃんと見えていますか?
デスクトップにファイルを配置させることは一時は確かに便利ですが、沢山置き過ぎるとデスクトップが見にくなって必要なものが探せなくなるだけでなく、PCも重くなります。そしてデスクトップに配置されているファイルの殆どは1度使ったけど、もう使ってないというものも多いと思います。
ただ、いざ汚部屋と化したデスクトップを整理しようとして、使っていないファイルを手作業で選別してゴミ箱に入れて削除するのもめんどくさかったりします。
私はこのような断捨離作業をシェルスクリプトcronを使って自動化しているので紹介したいと思います。
※ Macユーザ限定の方法です

やり方

ホームディレクトリ配下にbinディレクトリを作成、移動

$ mkdir ~/bin
$ cd ~/bin

実行するシェルスクリプトを作成

vim delete_tmp_file.sh
#!/bin/sh

# ダウンロードフォルダ
find $HOME/Downloads/* -ctime +1 -print0 | xargs -0 rm -rf
# デスクトップ
find $HOME/Desktop/* -ctime +1 -print0 | xargs -0 rm -rf

こちらのシェルスクリプトはMacのダウンロードフォルダとデスクトップのファイルやフォルダの最終更新日が1日以上前のものをすべて削除するものです。(-print0や-0のオプションを付けないとマルチバイド文字列やスペースを含むファイルがうまく削除できないのでお忘れなく)
世のMacアプリには日付毎にフォルダ分けしたりする機能があったりしますが、私はデスクトップやダウンロードフォルダに入るファイルはほぼ100%一時ファイルだと思っている(そういう運用をしている)のでシンプルに削除するプログラムにしました。
削除対象が最終更新日ベースなので更新が頻繁に行われるファイルは削除されません。
デスクトップやダウンロードフォルダは一時作業用スペースとみなしているので、作業が終わってもなおとっておきたいファイルは必ず別のフォルダに移動してください。
ちなみに -ctime +1 の部分を -ctime +2 や -ctime +3 にすることで最終更新日が2日以上や3日以上にすることが出来ます。自分の性格に合わせて適宜変更してください。

シェルスクリプトのパーミッションを変更

$ chmod 755 delete_tmp_file.sh

crontabの設定
先ほど作成したシェルスクリプトを1時間毎に実行させます。

$ crontab -e
# 1時間毎に実行
0 * * * * /bin/sh $HOME/bin/delete_tmp_file.sh


以上で定期的に断捨離スクリプトが走ります。
定期削除を辞めたくなったら下記のようにコメントアウトしてください。

# 1時間毎に実行
#0 * * * * /bin/sh $HOME/bin/delete_tmp_file.sh


まとめ

部屋の掃除もそうですが、PCの掃除をするのも気持ちいいものですね。
これを機会に自分のPCのフォルダの使い方などを見なおしてみるといいと思います。
またデスクトップはきれいになったけど逆にファイルやアプリへのアクセスが面倒になったんだけど、というあなたにはMac最強のランチャーアプリ「Alfred」をオススメします。
こちらの使い方については別の機会に紹介したいと思います。

ではでは。

この記事を書いた人
鈴木 弦 エンジニア

サーバーサイドエンジニア。大手WEBポータル企業にてコマース開発に従事。企業向けシステム開発等に関わる。また100万DLを超えるiOSアプリのメイン開発担当。その後School Withにジョイン。好きなラーメンは鶏ガラ系醤油。

School Withとは

School With (スクールウィズ) は海外留学・語学留学の口コミ情報サイトです。

東京ボスストーリー