私のマシンにはディレクトリがあります。自分の種類のtmp
ディレクトリと考えてください。しかし、それは~
ディレクトリにあります。そして、私のシステムが3時間ごとにすべてのファイルを削除するようにしたいです(ディレクトリ構造はそのままですが、ディレクトリのすべてのレベルのすべてのファイルを再帰的に削除します)1日以上古いディレクトリ。
Ubuntu GNOME 15.10をGNOME 3.18で実行していますが、これを実行できますか?もしそうなら、どのように?これは、ユーザーの操作なしで完全に自動化されます。これはログイン時に自動的に開始されるものである必要があるため、すべてのスタートアップで何かを実行する必要はありません。
find
を使用:
find ~/tmp -type f -mtime +0 -delete
~/tmp
は再帰的に検索されるディレクトリです。これを適宜変更してください
-type f
はファイルのみを検索します
-mtime +0
は、ファイルが1日以上前に最後に変更された場合にファイルと一致します
-delete
は、一致したファイルを削除します
ここでのキャッチは-mtime +0
です。ほとんどの場合、-mtime +1
の使用を考えているかもしれませんが、find
は日数の計算中に小数時間を無視します。したがって、最後の変更が少なくとも2日前に行われた場合、-mtime +1
はファイルと一致します。
man find
、-mtime
の引用には、-atime
と同じタイミング規則があります。
-atime n
ファイルはn * 24時間前に最後にアクセスされました。ファイルが最後にアクセスされた24時間前の数がわかると、小数部分は無視されるため、-atime +1と一致するには、少なくとも2日前にファイルにアクセスする必要があります。
また、精度が必要な場合は、find
の-mmin
オプションを見て、時間を分単位で示す必要があることに注意してください。
3時間後に定期的に実行するには、cron
エントリを追加できます。
crontab -e
を実行して追加します:
00 */3 * * * /usr/bin/find ~/tmp -type f -mtime +0 -delete
zsh
を使用してファイルを削除します。
rm ~/tmp/**/*(.-m+0)
cron
に追加:
00 */3 * * * /usr/bin/zsh -c 'rm ~/tmp/**/*(.-m+0)'
/home/username/directory
およびその下のすべてのディレクトリ内の1日より古いすべてのファイルを削除できるはずです:
find /home/username/directory -type f -mtime +1 -delete
また、3時間ごとにそのコマンドをスケジュールするには、cronジョブとして設定します。
crontab -e
次に、crontab内で:
0 */3 * * * find /home/username/directory -type f -mtime +1 -delete
これは、1時間(0分)に3時間ごとにコマンドを実行するため、午前3:00、午前6:00などです。
詳細については、cron
およびcrontab
manpages
にアクセスしてください。