find
過去 1 分間に書き込まれ、変更されていないファイルを選択するにはどうすればよいですか?
逆のこともでき、 を使って過去 60 秒間に変更されたファイルを検索できます-mtime -60s
が、私が探したいのは過去 60 秒間に変更されていないファイルです。
私は Linux を使用していますが、秒数を使用すると次のエラーが発生します。
find ??/ -mtime +60s -name blah.tsv
find: invalid argument `+60s' to `-mtime'
答え1
使用find /path -type f -mtime +60s
-
数字の直前の は通常の「引数ダッシュ」ではなく、「より小さい」という意味です。は+
「より大きい」という意味です。
からman find
:
数値引数を取るすべてのプライマリでは、数値の前にプラス記号 (``+'') またはマイナス記号 (``-'') を付けることができます。プラス記号が前にある場合は ``n より大きい'' を意味し、マイナス記号が前にある場合は ``n より小さい'' を意味し、どちらも ``n とまったく同じ'' を意味するわけではありません。
注目すべきは、正確にn時間は丸められます。したがって、1
(1 日) は 86400 秒を意味するわけではありません。
答え2
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
答え3
2番目-
は-mtime -60s
ないオプションの区切り文字。
-mtime
はオプションであり、その後にオプション引数オプション引数は であり-60s
、-
その中の はオプション引数自体の一部です。ないオプションの区切り文字。これは「60 秒未満」を意味します。オプションの引数60s
と は+60s
それぞれ「60 秒に等しい」と「60 秒より大きい」を意味します。
Apple MacOS マニュアルと FreeBSD マニュアルでは、+
および-
プレフィックスが 1 か所でのみ言及されており、それが何であるかはどこにも説明されていません。これがプレフィックスです。
find
(興味深いことに、GNU の GNU Info マニュアルにも同様の省略があります。ただし、GNUfind
の時刻の構文は、BSD や MacOS のfind
構文とは多少異なります。)
参考文献
- Apple が設立 (2008-02-24)。
find
MacOS 10 マニュアルページ. MacOS 10 開発者ライブラリ。 find
(1). 2010-03-17. FreeBSD 一般コマンドマニュアル。FreeBSD プロジェクト。
答え4
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一般的な秒の処理方法について説明します。