it-swarm-ja.com

1分以上前のすべてのファイルを検索する

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

逆にそれができることはわかっています。過去60秒間に-mtime -60sで変更されたファイルを見つけますが、過去60秒間に変更されていないファイルが必要です。

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

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

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

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

man findから:

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

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

13
Daniel Beck
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
14
SiegeX

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

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

Apple MacOSマニュアルとFreeBSDマニュアルは+および-接頭辞は1か所だけにして、どこにあるかを説明するのを忘れてください。これは彼らが何であるかです。

(GNU情報マニュアルGNU findも同じように省略されています。興味深いことに、GNU = findの時間の構文は、BSDおよびMacOSのfind構文とは多少異なります。)

参考文献

4
JdeBP

使えるはず

find . ! -mtime -60s
3
Karolos

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 秒の一般的な処理方法について説明します。

1
Nick Greenwood