对于find 参数一个错误认识(unix版本问题)

本文详细解析了在Solaris系统中find命令的size参数用法,特别指出与Linux和其他Unix版本的区别。通过实例说明如何正确指定文件大小进行查找。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网上搜寻find -size的参数时,通常都会有b,c,k,w 四个参数,但是这通常是指linux

 这句话很重要,因为不同的unix版本,甚至是不同级别同种的unix shell命令都会有不同,

而在solaris中,find - size 就没有b,k,w这两个参数,

不妨看看 man find的结果(部分) -size n[c]         

   True if the file is  n  blocks  long  (512  bytes  per            block).

If n is followed by a c, the size is in bytes.

具体而言,就是find -size就支持c这个参数如果没有,默认就是b,即一个blocks(513字节)

如果乱加一通参数,例如你加上k,w参数,仍然默认为以block来记数

例如下面这个命令,我们是想在当前目录下查到size大于100m的文件

 find . -size +102400m 

 find . -size +100000k

可是在solaries 下运行时,却把那些文件大小只50多兆的也查询出来

why? 分析一下102400m 到底是多少因为此时m是一个废的参数,所以系统仍然以block来计算

而根据man的提示,一个block是512bytes,即0.5k 102400*0.5/1000=51.2m(1m=1000k)

 find . -size +102400m 实际结果是查询size大于51.2m的文件,

所以搜索出一个 size大小为58m就不足为奇矣!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值