3

現在の日付から90日前の日付を取得する必要があるzshスクリプトを作成しています。つまり、現在の日付から90日を減算する必要があります。次に、日付が異なる名前のフォルダーを確認する必要があります。ディレクトリの日付と減算した日付を比較する必要があり、結果が減算した日付よりも大きい場合は、ディレクトリを削除する必要があります。

例えば:

current_date = 20131130 (yyyymmdd) としましょう

減算日=現在の日付 - 90 日

フォルダ 20130621 があるとしましょう

これで、このフォルダー名は減算された日付と比較されるはずです。Subtracted_date より大きい場合は、ディレクトリを削除する必要があります。

4

4 に答える 4

14
find path -type d -ctime +90 -exec rm -rf {} \;

90日より古いすべてのディレクトリを見つけて、それらに rm -rf を使用する必要があります

おそらく最初にこれでテストしたいと思うでしょうが、そのコマンドには注意してください

find path -type d -ctime +90 -exec echo {} \;

特定のフォルダーを保持するために、フォルダー-mtimeの代わりに検討し-ctime、頻繁に触れる

上記をスキャンして削除する実際のパスに置き換えpathます

説明

findコマンドです

pathスキャンするルート ディレクトリです。

-type dディレクトリのみを探すことを意味します

-ctime +90作成時間が 90 日より古いことを意味します

-exec rm -rf {} \;再帰的に削除し、見つかったアイテムを強制的に削除することを意味します

-mtime修正時間です

2 番目のコマンドは、削除されるすべてのフォルダーを一覧表示するため、テスト中に実行する方がはるかに安全です。

于 2013-07-30T11:20:34.940 に答える