2014年より古いファイルを見つけて削除するスクリプト

2014年より古いファイルを見つけて削除するスクリプト

2014年9月24日より前のファイルを見つけて削除するスクリプトを作成しようとしています。どうすればいいですか?

答え1

2014年9月24日00:00に設定された時間でダミーファイルを作成し、更新されていないコンテンツを見つけて削除します。

#date format YYYYMMDDhhmm
touch -t 201409240000 dateref
find -type f ! -newer dateref -delete

findこのオプションを使用する前に、このオプションに注意してください-delete。最後の場所にいる必要があり、結果を事前に確認する必要がない場合があります-delete

答え2

(対応する日付を含む参照ファイル)とともに、findsオプションを使用して-newerを無効にすることができます。これを使用して参照ファイルを作成できます。たとえば、-newer!touch -d

touch -d "2014-09-23 23:59:59.999999999" /tmp/reference-file
find /path/to/directory/ ! -newer /tmp/reference-file -ls

lessスキャンのためにファイルにパイプまたはリダイレクトできます。

削除したいファイルだけが削除されることを確認してから、オプションを-lsに変更してください。-delete

(2014年9月14日の真夜中に生成されたファイルを削除しても大丈夫なら、この方法は効果的です。touch -d 2014-09-24これは! -newer「前」を意味するだけでなく「前または同じ」を意味するためです。ほとんどの場合、.999999999が使用されます。になると言います。

注:上記は、およびすべてがGNUバージョンであるとfind想定していますtouch。他のバージョンでは動作する場合も動作しない場合もあります。 Linuxを使用している場合、GNUユーティリティは標準です(busyboxスペースを節約するために小さなディストリビューションまたは同様のディストリビューションを使用しない限り)。

からman find

-newer reference

現在のファイルの最後のデータ修正時間は、参照ファイルの最後のデータ修正時間よりも最近です。参照がシンボリックリンクであり、 -Hオプションまたは-Lオプションが有効な場合、参照が指すファイルの最後のデータ変更時間が常に使用されます。

-anewer変更時間の代わりにアクセス時間を使用するには、同じマニュアルページも参照してください。

次の-newerXYオプションも関連しています。

- 最新のXYリファレンス

検討中のファイルのタイムスタンプXが、ファイルが参照するタイムスタンプYより新しい場合は成功します。文字XとYは、次のいずれかです。

 a   The access time of the file reference
 B   The birth time of the file reference
 c   The inode status change time of reference
 m   The modification time of the file reference
 t   reference is interpreted directly as a time

一部の組み合わせは無効です。たとえば、to Xbeは無効ですt。一部の組み合わせは、すべてのシステムで実装されているわけではありません。たとえば、Bすべてのシステムがそれをサポートしているわけではありません。無効またはサポートされていない組み合わせを指定すると、XY致命的なエラーが発生します。

-d時間仕様はGNUオプションの引数として解釈されますdate

参照ファイルの生成時間を使用しようとしたが生成時間を確認できない場合は、致命的なエラーメッセージが表示されます。

検査中のファイルのビルド時間に関連するテストを指定すると、ビルド時間が不明なすべてのファイルに対してこのテストは失敗します。

答え3

次のスクリプトを試してください。

#!/bin/bash

d2=$(date +%s)
d1=$(date -d "2014-09-24" +%s)
d=$(( (d2 - d1) / 86400 ))

find ./ -mtime +$d -delete

まず、-delete正しいファイルが見つかったことを確認してください。 100%確実な場合は追加し、検索の代わりに目的の-deleteパスを使用してください。./

関連情報