平日のみctimeを使用してください

平日のみctimeを使用してください

過去2日前に作成されたすべてのフォルダを削除するスクリプトがあります。今月曜日には、先週のすべてのフォルダが削除されますが、これは望ましくありません。

このコマンドに対して作業日のみを考慮することを選択できますか?フルスクリプトは毎日実行されます。私はこれを使用しています:

find /my-folder/sub-folder/ -type d -ctime +1 | xargs rm -rf

答え1

次のことができます。

find /my-folder/sub-folder/ -type d -ctime "+$((
  1 + 2 * ($(date +%u) <= 2) ))" -prune -exec echo rm -rf {} +

つまり、現在の日付が1(月曜日)または2(火曜日)の場合(平日のみスクリプトを実行すると仮定)、2日を追加します。

スペース、バックスラッシュ、または引用符を含むファイル名に標準の代替方法を使用すると、失敗するため、削除して置き換えたいディレクトリに入れる-prune必要がないため、1つを追加しました。xargs-exec ... {} +

ctimeディレクトリ内のファイルが変更された場合、またはファイルがサブディレクトリに追加または削除されても、ディレクトリの目次は更新されません。

関連情報