在 zsh 下的 OS X Lion 中,如何設定 X 天後刪除的 /Users/username/tmp 目錄?

在 zsh 下的 OS X Lion 中,如何設定 X 天後刪除的 /Users/username/tmp 目錄?

我是 OS X 上的腳本編寫和常規工作新手,因此請提前感謝您的幫助。

我希望在我的 homedir 中有一個 tmp 目錄,例如 /Users/username/tmp ,我可以將其用作我的「下載」目錄。

我的目標是在 atime(上次造訪)後 10 天後刪除此目錄中的檔案/目錄。

所以我正在尋找一個腳本以及使用 ZSH 作為 shell 在 OS X Lion 上定期運行它的方法。

謝謝。

答案1

編寫一個腳本,如果資料夾中的文件的atime 早於十天前,則刪除該文件,然後每天運行它(我不知道OSX 上最好的機制是什麼;在Linux 上我會使用anacron,否則會失敗使用 cron 每小時運行一次)。

範例腳本(採用目錄,例如 ~/downloads,作為第一個參數):

#!/bin/zsh

setopt extended_glob

targetpath=$1

[[ -d $targetpath ]] || (echo "Directory does not exist" 1>&2 && exit 1)

rm ${path}/**(.a+10) # ** will match recursively, and the bit in brackets is an
# extended glob qualifier, matching ordinary files with an atime more than ten days ago.
unsetopt extended_glob
exit 0

這可能有各種各樣的問題,如果您習慣使用extend_glob,那麼自然不需要在腳本中打開它然後再關閉它。

相關內容