0

過去 1 時間 (より正確には過去 60 分間) にディレクトリ内で変更されたファイルを見つけるために使用できる最も効率的なコマンドを教えてください。

または

そのアプローチが良くない場合は、現在の時刻をファイルの作成/変更のタイムスタンプと比較する方法を教えてください

ありがとう

4

3 に答える 3

0

タイムスタンプが 1 時間前のファイルにタッチし、find のオプション -newer を使用します。タッチ時間は、タイムゾーン トリック (GMT の例) で計算できます。

echo "$(TZ=GMT+1 date +%Y-%m-%d)"

だからあなたは次のようなことをします

HOUROLDFILE=/tmp/hourold.tmp
touch -t "$(TZ=GMT+1 date '+%y%m%d%H%M')" ${HOUROLDFILE}
find a_directory -newer ${HOUROLDFILE}
rm ${HOUROLDFILE}
于 2014-07-22T19:02:45.777 に答える
0

find のオプションを使用します-newermt

find -newermt 'now -1 hour'

または単に

find -newermt -1hour

使用方法については、find のマニュアルを参照してください。

ksh の別の方法:

BEFORE=$(date -d '-1 hour' '+%s'); find -type f -printf '%T@ %p\n' | while read -r TS FILE; do TS=${TS%.*}; [[ TS -ge BEFORE ]] && echo "$FILE"; done

使用しない場合-d:

BEFORE=$(( $(date '+%s') - 3600 )); find -type f -printf '%T@ %p\n' | while read -r TS FILE; do TS=${TS%.*}; [[ TS -ge BEFORE ]] && echo "$FILE"; done
于 2013-09-07T10:06:01.730 に答える