私は 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 を習慣的に使用している場合は、当然ながら、スクリプト内でそれをオンにしたり、後でオフにしたりする必要はありません。