'x'から 'y'の間に作成されたすべてのファイルを一覧表示するにはどうすればよいですか? 「2014年12月29日18:00」から「2014年12月30日18:00」の間に作成されたファイルを一覧表示したい。 lsまたはstatを使用していますか?
たとえば、GNU/BSDが検出し、検出する場合、たとえば [〜#〜] osx [〜#〜] の場合、その-newerBt
述語を使用して、ファイルの作成を比較できます(“ birth”)特定の時間の時間。
find -newerBt "29-dec-2014 18:00" ! -newerBt "30-dec-2014 18:00"
これはサブディレクトリを再帰的にトラバースします。現在のディレクトリにあるファイルのみが必要な場合は、これを作成します
find -mindepth 1 -maxdepth 1 -newerBt "29-dec-2014 18:00" ! -newerBt "30-dec-2014 18:00"
システムが作成時間を追跡しない場合は、代わりに変更時間を使用できます。 -newerBt
を-newermt
に置き換えます。
ls
もstat
も、ファイルを時間でフィルタリングする方法を提供していません。彼らができることはファイルのタイムスタンプをリストすることだけであり、時間範囲の出力をフィルタリングすることは簡単ではありません。 find
はこの仕事に適したツールです。
POSIX find は、ファイルのタイムスタンプを別のファイルのタイムスタンプとのみ比較できるため、時間間隔でファイルをフィルタリングする移植可能な方法は、境界ファイルを作成することです。フィルタリングできるのは変更時刻のみで、POSIXは作成時刻を定義していません。
touch -t 201412291800 /tmp/start
touch -t 201412301800 /tmp/stop
find . -newer /tmp/start ! -newer /tmp/stop
またはあなたが再発したくない場合
find . ! -name . -Prune -newer /tmp/start ! -newer /tmp/stop