user3002473 Asked: 2018-02-09 15:00:57 +0800 CST2018-02-09 15:00:57 +0800 CST 2018-02-09 15:00:57 +0800 CST 'find -size 100k' 使用千字节还是千字节? 772 我正在查看 linux 手册,并在此页面上查找手册,特别是在有关测试“-size”的部分中,它(错误地)指出千字节是 1024字节。据我所知,这是错误的。一千字节是1000字节,一千字节是 1024 字节。那么,它实际使用什么单位呢?它是说“千字节”并表示“1000 字节”,还是表示“1024 字节”并错误地写成了“千字节”? find size 2 个回答 Voted Best Answer Sparhawk 2018-02-09T15:07:37+08:002018-02-09T15:07:37+08:00 好眼力!明确的解释是正确的。1k 表示千字节(1024 字节)。我通过创建一系列尺寸并查看已识别的尺寸对其进行了测试。 $ for i in 999 1000 1001 1023 1024 1025; do dd if=/dev/urandom of=$i bs=1 count=$i; done $ find . -size 1k . ./1024 ./1023 ./1001 ./1000 ./999 您可以看到找到了 1024 字节的文件(而不是 1025 字节的文件)。 (如果您愿意,您可能会考虑提交错误报告。) user232326 2018-02-09T15:37:11+08:002018-02-09T15:37:11+08:00 您链接的页面上的手册已过时且不正确。已纠正此错误的在线页面是: -size n[cwbkMG] 文件使用 n 个空间单位,向上取整。可以使用以下后缀: `b' 表示 512 字节块(如果不使用后缀,这是默认值) `c' 表示字节 `w' 表示两字节字 `k' 表示千字节(KiB,单位为 1024字节) “M”表示兆字节(MiB,单位为 1024 * 1024 = 1048576 字节) “G”表示千兆字节(GiB,单位为 1024 * 1024 * 1024 = 1073741824 字节) BSD 查找手册仍然不正确。 最新的手册man find在更新的操作系统中。 从 GNU find 版本(find (GNU findutils) 4.7.0-git)开始,手册如下: -size n[cwbkMG] 文件使用 n 个空间单位,向上取整。可以使用以下后缀: `b' 表示 512 字节块(如果没有使用后缀,这是默认值) `c' 表示字节 `w' 表示两字节字 `k' 表示千字节(KiB,以 1024 字节为单位) `M' 表示兆字节(MiB,单位为 1024 * 1024 = 1048576 字节) “G”表示 Gibibytes(GiB,单位为 1024 * 1024 * 1024 = 1073741824 字节) 所以,这个问题已经在某些版本的 find 中解决了。
好眼力!明确的解释是正确的。1k 表示千字节(1024 字节)。我通过创建一系列尺寸并查看已识别的尺寸对其进行了测试。
您可以看到找到了 1024 字节的文件(而不是 1025 字节的文件)。
(如果您愿意,您可能会考虑提交错误报告。)
您链接的页面上的手册已过时且不正确。已纠正此错误的在线页面是:
BSD 查找手册仍然不正确。
最新的手册
man find
在更新的操作系统中。从 GNU find 版本(find (GNU findutils) 4.7.0-git)开始,手册如下:
所以,这个问题已经在某些版本的 find 中解决了。