Linux下find命令——根据文件的大小查找(带截图)

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

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

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

        首先:ls -lh

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

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

Linux下find命令——根据文件的大小查找(带截图)

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

① 三种情况

Linux下find命令——根据文件的大小查找(带截图)

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

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

Linux下find命令——根据文件的大小查找(带截图)

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

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

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

③ find . -size +#SIZE

Linux下find命令——根据文件的大小查找(带截图)

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

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

④ find . -size #SIZE

Linux下find命令——根据文件的大小查找(带截图)

        发现只有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,正无穷)

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