AIX Unix - 開始文字と終了文字を含む日付期間中に生成されたファイルを見つけて削除する方法は?

AIX Unix - 開始文字と終了文字を含む日付期間中に生成されたファイルを見つけて削除する方法は?

私はコマンドオプションが制限されているIBM AIX Unixを使用しています。 findおよびmtime(有効)オプションを使用して、次のフィルタ条件を達成したいと思います。次のフィルタにリストされているファイルを削除したいと思います。

  • 数字[0-9]で始まるファイル
  • 「.dat」で終わる
  • 期間:2018年8月1日から2018年10月15日まで

findコマンドを試してみましたが、あまり役に立ちませんでした。

 find /mydirectory -type f -mtime -45 -mtime +5 

ベストアンサー1

このfindコマンドは以下を探します。ファイルやそのようなものそしてコンテンツが最後に変更されてから45日が経過していません。そしてコンテンツが最後に変更されてから5日以上経過しました。。 (「AND」はデータセットを制限するものであり、増幅するものではありません。必要に応じて「that are also」と読み取ることができます。)

絶対日付範囲と一致したと仮定すると、指定した条件セットを完了する句を追加するだけです。

find /mydirectory -type f -mtime -45 -mtime +5 -name '[0-9]*' -name '*.dat'

わずかな最適化により、これら2つの命名基準は

  • 数字[0-9]で始まるファイル
  • 「.dat」で終わる

単一のステートメントに結合できます。

  • globに一致するファイル(「シェルワイルドカードパターン」)[0-9]*.dat

最後に「一致するファイルを削除「アクションを実装するために使用することができ、それを使用してrm -f必要なソリューションを見つけることができます。

find /mydirectory -type f -mtime -45 -mtime +5 -name '[0-9]*.dat' -exec echo rm -f {} \;

期待どおりにファイルが選択されているのを見たら、印刷するのではなく、コマンドがecho実行されるようにコマンドから削除することを忘れないでください。rm

おすすめ記事