Linuxで特定の時間より後に生成されたファイルを列挙する方法

画像解析などをしていると、しばしば、「今の作業で新しくできたファイルは何だろう?」と思うことがあります。

Linuxでは、find コマンドに、-newer というオプションがあります。findのmanページには以下の記載があります。

-newer file
ファイルが file よりも最近に内容を更新されていれば、真を返す。

であるならば、あるファイルを作成して、作業をして、その後に、findをかければ列挙できるはずです。

いろいろ調べた結果、touchコマンドで -t オプションを使うとタイムスタンプを決められるので、それをスクリプトに組み込めるなと思いました。

以下のスクリプトで、新たに生成されたファイルの一覧が generated_from_タイムスタンプ.txt に作成されます。

#!/bin/bash

#generate timestamp
ts=$(date +%Y%m%d%H%M.%S)

#generate a temporary file with current timestamp for find
touch -t $ts /tmp/_timestamp

# BEGIN commands to generate new files
#
# END

# list files which is generated after /tmp/_timestamp
find . -type f -newer /tmp/_timestamp | tee -a generated_from_${ts}.txt

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください