特定のタイムスタンプで生成されたUNIXファイルを表示するクエリ

特定のタイムスタンプで生成されたUNIXファイルを表示するクエリ

特定の時間に生成されたすべてのファイルを一覧表示したいと思います。

(例:その時点で生成されたファイル:11月13日09:09)

-rw-r--r-- 1 bitt1 cerillio     43268 Nov 13 09:02 sendEsbUpdateEvents.log
-rw-r--r-- 1 bitt1 cerillio    333420 Nov 13 09:09 jobwatch_bittest1.log
-rw-r--r-- 1 bitt1 cerillio   6113535 Nov 13 09:09 CDRExtract.log
-rw-r--r-- 1 bitt1 cerillio     10268 Nov 13 09:09 cdrextract_111309095100_26224.log
-rw-r--r-- 1 bitt1 cerillio 322398684 Nov 13 09:10 export_docs_log.log
-rw-r--r-- 1 bitt1 cerillio   2911940 Nov 13 09:14 sendBillNotifications.log

その場合は、単一のライナークエリを教えてください。

ベストアンサー1

GNUまたはFreeBSDの使用find

find . -newermt '2014-11-13 9:09' ! -newermt '2014-11-13 9:10'

9:09:00.000000000に最後に変更されたファイルではなく、9:10:00.000000000に最後に変更されたファイルを報告しますが、その間の残りの60,000,000,000ナノ秒には問題ありません。

GNUを使用してfindファイル名とディレクトリ名に改行文字が含まれていないと仮定すると、次のこともできます。

find . -printf '%T+/%p\n' | grep -Po '^2014-11-13\+09:09.*?/\K.*'

(または改行文字を含めることができる場合:

find . -printf '%T+/%p\0' | grep -Pzo '^2014-11-13\+09:09.*?/\K.*' | tr \\0 \\n

おすすめ記事