findの-sizeオプションの注意点

findではぴったりサイズをヒットできない使い方があるので注意しましょう。

-sizeオプションの+1Mは>1M、-1Mは<1Mになっているようです。>=, <=にはなっていませんでした。>=, <=にするには2回実行する必要があります。

$ fallocate -l 1M dummy
$ ls -l dummy
-rw-rw-r--. 1 shinago shinago 1048576 Mar 13 11:48 dummy
$ find ./ -name dummy -size +1M
$ find ./ -name dummy -size -1M
$ find ./ -name dummy -size 1M
./dummy 

オプションを並列に書いてもエラーになりませんが、ORではなくANDとなりマッチしなくなってしまいます。

$ find ./ -name dummy -size +1M -size 1M
$ find ./ -name dummy -size -1M -size 1M
タイトルとURLをコピーしました