1分以上経過したすべてのファイルを検索する


8

find直前に書き込まれ、変更されていないファイルを選択するにはどうすればよいですか?

私はそれとは逆にそれを行うことができることを知っています、で過去60秒間に変更されたファイルを見つけますが、過去60秒間に変更されていないファイル-mtime -60sが欲しいです。

Linuxを使用していて、秒を使用するとこのエラーが発生します。

find ??/ -mtime +60s -name blah.tsv
find: invalid argument `+60s' to `-mtime'

回答:


13

使用する find /path -type f -mtime +60s

-数字の直前は、通常の「引数ダッシュ」ではなく、「より小」を意味します。+次に「以上」です。

からman find

数値引数を取るすべてのプライマリでは、数値の前にプラス記号(「+」​​)またはマイナス記号(「-」)を付けることができます。先行するプラス記号は「nより大きい」を意味し、先行するマイナス記号は「nより小さい」ことを意味し、どちらも「正確にn」を意味しない。

正確にnの場合、時間が丸められることに注意してください。したがって、1(1日)は86400秒を意味しません。


2
厳密に言えば、+60はの反対ではありません。-60同じ理由で、より小さいより大きいの反対ではありません:どちらも、比較する正確な値を除外します。しかし、あなたの質問はあなたが望む行動を正確に示すものではありません。
ダニエルベック

これは実際にはまったく同じではありません。元の「クエリ」を元に戻します。しかし、同意しました、OPは彼が何を望んでいるかを指定しません。
Karolos

その翌日、OPはMac OS XではなくLinux上にあると述べました。それが答えを変えたとしたら、それを更新できますか?
Peter Mortensen 2012

1
ええ、これはLinuxでは機能しません。少なくともRHEL 5.6。ただし、以下のSiegeXの応答は機能します。
MattPark 2013年

2
これはCentOSでは機能しません。想定どおりMac OS Xで動作する
2013年

14
find . -type f -mmin +1

$ ls *
four.txt  one.txt  three.txt  two.txt

$ touch foo && find . -mmin +1
.
./three.txt
./four.txt
./two.txt
./one.txt

タグ付けされなくなりましたosx
Peter Mortensen 2017年

4

2番目はオプションの区切り文字--mtime -60sはありません

-mtimeオプションであり、オプション引数が続きます。オプションの引数は-60sであり、その-中のはオプションの引数自体の一部であり、オプションの区切り文字ではありません。「60秒未満」という意味です。オプションの引数60s+60sは、それぞれ「60秒に等しい」と「60秒より大きい」という意味です。

Apple MacOSのマニュアルとFreeBSDのマニュアルでは、接頭辞+-接頭辞が正確に1か所で言及されており、それらがどこにあるかを説明するのを忘れています。これは彼らが何であるかです。

(GNUのGNU Infoマニュアルfindも同じように省略していますが、興味深いことに十分です。ただし、GNU findの構文は時代によってBSDやMacOSのfind構文とは多少異なります。)

参考文献


1
ただ1か所で説明するよりもさらに悪いです。他のすべてのオプションはatime、時刻形式について参照しますが、これは接頭辞も説明しません。参照されない別のセクションです。
ダニエルベック

確かに; そして、あなたは私がそれを書いたことがわかるでしょう。「メンション」と「どこでも説明するのを忘れる」と書きました。☺
JdeBP

私はあなたと矛盾するつもりはありませんでした、ちょうど1つの場所が「manページをざっと見てみましょう」POVからの可能な最悪の場所でもあることを指摘したかっただけです。
ダニエルベック

しかし、それ正確に一箇所で説明されていません。どこにも説明されていません。一般的にかなりよく書かれて編集されている一連のマニュアルページについては、私の経験では、それは驚くべき省略です。
JdeBP 2012年

1
へえ!それはあなたがすでに答えを魔法のように知っていて、ドキュメントを読むときにトウェインをつなげて、実際に書かれていないものを埋めることができるからです。知識がなく、マニュアルを読んで理解している人は、なぜ「修飾子」がどこにあるのか説明がないのか不思議に思う必要があります。☺
JdeBP

3

使えるはず

find . ! -mtime -60s

1
私には括弧が必要です:find . !( -mtime -60s )
Der Hochstapler '27

@OliverSalzburg:私のMacでは、括弧なしで問題なく動作します(Darwin Kernelバージョン11.2.0)。
Karolos

1

Unixシステムでは、-mtimeの後に+/-が続き、その後に数値が続き、その後に時間の単位が続きました。[+-] nn [dms]

Linuxは、日にはmtime、分にはmminを使用しますが、秒オプションがないようで、時間単位指定子を使用しません。+または-は、上記のオプション引数ではなく、時間よりも大きいか小さいかを示します。

-mmin 1を使用することもできますが、https: //unix.stackexchange.com/questions/238738/find-files-newer-than-15-seconds-but-older-than-2-secondsでは、秒の一般的な処理方法について説明しています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.