6ヶ月以上触れていないファイルをすべて見つけようとします。このコマンドを実行しましたが、6か月以内に編集されたすべてのファイルのみが表示されます。
find . -type f -mtime 183 -exec ls -latr {} \;
どうすれば6ヶ月以上持続できますか?
答え1
-mtime 183
期間は183に対応する次の24時間期間に丸められ、期間は182 * 24 * 3600秒(除外)から183 * 24 * 3600秒(含む)のファイルに適用されます(ここで秒はUnix秒です)。はISOで定義された固定期間(秒)ではなく可変期間(地球日の86400番目の部分)を持つため、すべての日は86400秒で、うるう秒を考慮する必要はありません。
を使用すると、-mtime +183
次の24時間期間に丸められた183よりも厳しい年齢のファイルを取得するため、年齢は厳密に183 * 24 * 3600秒よりも大きくなります。
24時間が必ずしも24時間と一致するわけではありません。空一部の地域では、夏時間のため。
一部の実装(FreeBSD、GNU)では、.を使用して修正時間を引数として指定された時間と比較するfind
こともできます。! -newermt '6 months ago'
mt
m
t
これにより、6か月前に同じ日付、同じ時間より前に変更されたファイルが提供されますが、GNU find
(FreeBSDとは反対)の場合、DST調整(DSTが適用されるタイムゾーンで)を実行しません。 UTCタイムゾーンと同じ情報です。今が2016-07-01 13:00(夏時間)の場合、FreeBSDはfind
2016-01-01 13:00(冬時間)以前に最後に変更されたファイルを報告し、GNUはfind
2016-01年以前に最後で変更されたファイルを報告します。 01 12 前:00(冬季)。当月29日、30日、31日に電話する場合にも変更がある場合がありますが、6ヶ月前の月にはその日はありません。
答え2
+
日付値の前に1を追加します。マニュアルページから:
Numeric arguments can be specified as
+n for greater than n,
-n for less than n,
n for exactly n.
そして
... When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
これはテストを意味しますが、atime
テストと同じです。mtime
ctime