[Mac] n 日前以前に修正されたディレクトリをゴミ箱へ移動する

ディレクトリをゴミ箱へ移動するコマンドを cron で自動実行したくなった。

その際、以下のようにしたい。

・削除ではなくゴミ箱へ移動。
・n 日前以前に修正されたものを対象とする。
・ファイルではなくディレクトリを対象とする。
・修正日の検索対象は1階層目(ルートディレクトリ)とする。

(1)以下のようなシェルスクリプトを作る(7日前以前に修正されたディレクトリをゴミ箱へ移動する場合)。

#!/bin/bash

cd [対象ディレクトリへのパス]

find ./ -mtime +7 -type d -maxdepth 1 | xargs -I% mv % ~/.Trash/

exit

-type +7 で日前以前に修正されたものを、-type d でディレクトリを、検索対象としている。-maxdepth は検索対象の階層数だ(ルートディレクトリの場合は1)。

(2)シェルスクリプトに実行権限を与える(Directory2Trash.sh というファイル名とする)。

$ chmod 755 Directory2Trash.sh

実行テストは以下。

$ ./Directory2Trash.sh

(3)cron へ登録する(毎日7時0分に実行する場合)。

0 7 * * * ./Directory2Trash.sh

参考:
[Mac] 空のディレクトリをゴミ箱へ移動する – with a Christian Wife
https://wacw.cf/2019/05/17/moving-empty-directory-to-trash-bin/

指定日付以前の古いファイルを削除したり移動する方法
https://www.searchman.info/tips/2950.html

【保存版】Macでターミナルで使える基本のコマンド8選 – Qiita
https://qiita.com/kenju/items/77a2dc1b6a60697b1133

find で検索したファイルを一括で移動(mv)させる – Qiita
https://qiita.com/pekepek/items/207c13c79826b459db6b

一定期間を過ぎたファイルを移動とか削除とかするシェルスクリプト | みやなび
http://company.miyanavi.net/archives/2231

findコマンドのmtimeオプションまとめ – Qiita
https://qiita.com/narumi_/items/9ea27362a1eb502e2dbc

findコマンドを使って1階層からファイルを探す – leo029のメモ帳
http://leo029.hatenablog.com/entry/2013/02/09/012920