GNU `find` 似乎无法使用 -size 来查找大小小于 *M 的文件

发布于 2025-01-18 09:08:11 字数 263 浏览 0 评论 0原文

我想找到小于1M的文件,所以写成 find 。 -大小-1M。但这似乎确实不起作用:

find . -size -1M | xargs ls -lh
-rw-rw-r-- 1 xyz xyz 0 Apr  2 14:48 ./test/score
-rw-rw-r-- 1 xyz xyz 0 Apr  2 14:48 ./test/ir1

相反, find 令人惊奇。 -size 1M 有效。

I want to find the file whose size is less than 1M, so I write as find . -size -1M. But it seems not work indeed:

find . -size -1M | xargs ls -lh
-rw-rw-r-- 1 xyz xyz 0 Apr  2 14:48 ./test/score
-rw-rw-r-- 1 xyz xyz 0 Apr  2 14:48 ./test/ir1

On the contrary, it's amazing that find . -size 1M works.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

久隐师 2025-01-25 09:08:11

来自man find

+ 和 - 前缀表示大于和小于,如下所示
通常;即,n 个单位的精确大小不匹配。记住
尺寸向上舍入到下一个单位。所以
-size -1M 不等于-size -1048576c。前者只匹配空文件,后者匹配从0到
1,048,575 字节。

From man find:

The + and - prefixes signify greater than and less than, as
usual; i.e., an exact size of n units does not match. Bear in mind
that the size is rounded up to the next unit. Therefore
-size -1M is not equivalent to -size -1048576c. The former only matches empty files, the latter matches files from 0 to
1,048,575 bytes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文