OS X Lion の zsh で、X 日後に削除される /Users/username/tmp ディレクトリを設定するにはどうすればよいですか?

OS X Lion の zsh で、X 日後に削除される /Users/username/tmp ディレクトリを設定するにはどうすればよいですか?

私は OS X でのスクリプト作成や通常の作業は初めてなので、事前に助けていただければ幸いです。

私は、自分のホームディレクトリに、/Users/username/tmp のような tmp ディレクトリを作成して、「ダウンロード」ディレクトリとして使用したいと考えています。

私の目標は、このディレクトリ内のファイル/ディレクトリを、atime (最終アクセス) から 10 日後に削除することです。

そこで、ZSH をシェルとして使用して OS X Lion で定期的に実行するスクリプトと方法を探しています。

ありがとう。

答え1

フォルダー内のファイルの atime が 10 日前より前であればそのファイルを削除するスクリプトを作成し、それを毎日実行します (OSX で最適なメカニズムが何かはわかりません。Linux では anacron を使用するか、それができない場合は cron を使用して 1 時間ごとに実行します)。

サンプル スクリプト (最初の引数としてディレクトリ (例: ~/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

おそらく、これにはさまざまな問題があり、extended_glob を習慣的に使用している場合は、当然ながら、スクリプト内でそれをオンにしたり、後でオフにしたりする必要はありません。

関連情報