ファイルのセットに3つの最後の日付ファイル(つまり、ファイルに追加された日付)のみを保持し、特定のディレクトリに残っているファイルを削除します

surajreddy2

Unixで実装する必要のあるシナリオが1つあります。ディレクトリ内で、ファイルの最後に追加された日付に基づいてファイルを削除したいのですが、これらのファイルはXMLバックファイルです。以下の基準に基づいてファイルを削除する必要があります。ファイルのセットに3つの最後の日付ファイル(ファイルに追加された日付)のみを保持し、残りのファイルを削除します。

ディレクトリファイル:-

セット1:

Wf_ABC_201801011224.xml
wf_ABC_201801011220.xml
Wf_ABC_201801011241.xml
wf_ABC_201801011230.xml
Wf_ABC_201801011244.xml
wf_ABC_201801011260.xml

セット2:

Wf_DCB_201501021224.xml
wf_DCB_201601031220.xml
Wf_DCB_201601041241.xml
wf_DCB_201401051230.xml
Wf_DCB_201701061244.xml
wf_DCB_201801061260.xml

セット3:

Wf_XYZ_201501011224.xml
wf_XYZ_201601011220.xml
Wf_XYZ_201701011241.xml
wf_XYZ_201801011230.xml
Wf_XYZ_201801021244.xml
wf_XYZ_201801031260.xml
Wf_XYZ_201501041224.xml
wf_XYZ_201601051220.xml
Wf_XYZ_201601061241.xml
wf_XYZ_201401071230.xml
Wf_XYZ_201701081244.xml
wf_XYZ_201801091260.xml
シヴァ

これを試して、

D1=`date -d "1 day ago" +"%Y%m%d"` && D2=`date -d "2 day ago" +"%Y%m%d"` && D=`date   +"%Y%m%d"` && find . -type f -name "wf_*_*.xml" -not -name "wf_*_$D*.xml" -not -name "wf_*_$D1*.xml" -not -name "wf_*_$D2*.xml" -exec rm {} +
  • 過去3つの日付をD1、D2、およびDに保存します
  • パターンのあるファイルを探す wf_*_*.xml
  • そして、過去3日付でpattersを無視しwf_*_$D*.xmlwf_*_$D1*.xmlそしてwf_*_$D2*.xml
  • その後、ファイルを削除します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ