Linux下find命令——根据文件的大小查找

  杨宗威   2018-11-30 06:44:59  0  576  
关注 喜欢 鲜花 收藏 评论

   最近在学习Linux下命令,偶尔发现网上不少对于find -size命令的解释都是错误的。

 

        比如查找当前目录下文件大小小于1k的文件:find . -size -1k (这是错误的),你会发现什么都找不到。

 

        接下来的说明都是在ubuntu的虚拟机下做的。

 

        首先:ls -lh

 

                    -l:以长格式显示目录下的内容列表。

 

                    -h:使用比较接近文件大小的单位显示。

 

 

 

        可以发现,client文件夹里共有9个文件(4个小于1k的,2个介于1k和2k之间的,3个大于2k的)

 

① 三种情况

 

 

 

       结果显示如上图。发现第一条命令以为可以找到“查找当前目录下文件大小小于1k的文件”,结果查找结果为空。

 

② 我们来看find . -size  -#SIZE到底是查找多少大小范围内的文件

 

 

 

        对比发现,下面比上面多找到了一个文件(红框内),而由上面可知client_interface.c的大小刚好为5.0k。

 

        是因为find . -size -#SIZE查找的是【0,#SIZE-1】大小的文件。

 

        例如find . -size -6k查找的文件大小为【0,5】,两边都是闭。

 

③ find . -size +#SIZE

 

 

 

        发现只有13k的client文件被找到,5.0k的client_interface.c没有被找到。

 

        是因为find . -size +#SIZE查找的是(#SIZE,正无穷),不包含#SIZE大小的。

 

④ find . -size #SIZE

 

 

 

        发现只有5.0k的client_interface.c被找到。

 

        是因为find . -size #SIZE查找的是(#SIZE-1,#SIZE】,左开右闭。

 

⑤总结:

 

    find -size [+|-]#SIZE,常用单位:k,M,G。

 

         #SIZE:(#SIZE-1,#SIZE】

 

         - #SIZE:【0,#SIZE-1】

 

         +#SIZE:(#SIZE,正无穷)

 

这是我第一次在CSDN上写博客,欢迎大家指正。

--------------------- 

作者:karina_222 

来源:CSDN 

原文:https://blog.csdn.net/karina_222/article/details/77648241 

版权声明:本文为博主原创文章,转载请附上博文链接!


评论
请先登录后再发布评论
全部评论