を使用する場合、 はコマンドを直接呼び出して、各ファイルの名前を一度に 1 つずつ渡すため、スペース、タブ、改行、または特殊文字-exec rm {} \;
に問題はありません。find
rm
パラメータを渡していないため、ディレクトリはそのコマンドでは削除されませ-r
ん。おそらく、ディレクトリも削除したくないでしょう。それは少し危険な結果になる可能性があります。-f
書き込み権限がない場合に備えて、強制を実行するパラメーターを含めることもできます。root として cron スクリプトを実行すれば、問題ないはずです。
私が心配する唯一のことは、削除したくないが、過去 100 日間変更されていないファイルにアクセスする可能性があるということです。たとえば、職場で autodestruct シーケンスを停止するためのパスワードです。ファイルは過去 100 日間変更されていない可能性がありますが、自動破壊シーケンスが開始されると、パスワードが失われたためにそのファイルが非難されることは望ましくありません。
さて、より合理的なのは、使用されているがほとんど変更されていないアプリケーションです。現在の仕事を保持しているなどの理由で、誰かの履歴書が更新されていない可能性があります。
したがって、仮定には注意してください。ファイルが 100 日間変更されていないからといって、そのファイルが使用されていないわけではありません。より良い基準は (まだ疑わしいですが)、ファイルが過去 100 日間にアクセスされたかどうかです。多分これは最終的なコマンドとして:
find /path/to/files -atime +99 -type f -exec rm -f {}\;
もう一つ...
一部のfind
コマンドには、-delete
パラメーターの代わりに使用できるパラメーターがあり-exec rm
ます。
find /path/to/files -atime +99 -delete
これにより、見つかったディレクトリとファイルの両方が削除されます。
もう 1 つの小さな推奨事項: 最初の 1 週間は、ログ ファイルで見つかったファイルを削除するのではなく保存してから、ログ ファイルを調べます。このようにして、重要なものを削除していないことを確認します。ログ ファイルに触れたくないものが何もないことに満足したら、それらのファイルを削除できます。1 週間後、重要なものは何も削除しないことに満足したら、find
コマンドを元に戻して削除を実行できます。