linux 根据文件大小查找文件

linux下的find命令用来查找文件,通过man find就知道它是无所不能的。所以按照文件大小来查找文件就不在话下。从man find搜索size,可以看到如下信息:

-size n[cwbkMG]
	  File uses n units of space.  The following suffixes can be used:

	  b    for 512-byte blocks (this is the default if no suffix is used)

	  c    for bytes

	  w    for two-byte words

	  k    for Kilobytes (units of 1024 bytes)

	  M    for Megabytes (units of 1048576 bytes)

	  G    for Gigabytes (units of 1073741824 bytes)

注意:默认单位是b,而它代表的是512字节,所以2表示1K,1M则是2048,如果不想自己转换,可以使用其他单位,如c、K、M等。

例子:查找当前目录下文件大小为2048(2k)字节的文件

find ./ -size 4
或
find ./ -size 2048c
或
find ./ -size 2K

上述查找文件是等于指定大小的,那能不能查询大于或小于某个指定值的文件呢,答案是肯定,例如:

查找大于2K的文件,+ 表示大于
find ./ -size +2048c

查找小于2K的文件,- 表示小于
find ./ -size -2048c

查找大小在某个范围内的文件使用-size参数,-size +n表示大于n单位的范围,-size –n表示小于n单位的范围。例如,查找大于100k且小于400k的文件:

find . -type f -mtime -1 -size +100k -size-400k

说明:

-type f表示只查找文件,过滤掉文件夹,块文件等。

将查出来的文件以详细列表形式显示出来

find . -type f -mtime -1 -size +100k -size-400k  | xargs ls –l

-size参数说明:

-sizen[cwbkMG]

              File uses n units of space,rounding up.  The following suffixes

              can be used:

              `b'    for 512-byte blocks (this is the default if no suffix is

                     used)

              `c'    for bytes

              `w'    for two-byte words

              `k'    for Kilobytes (units of 1024 bytes)

              `M'    for Megabytes (units of 1048576 bytes)

              `G'    for Gigabytes (units of 1073741824 bytes)




备注:计算机单位
位、字节、字、KB、MB
位:“位(bit)”是电子计算机中最小的数据单位。每一位的状态只能是0或1。 
字节:8个二进制位构成1个“字节(Byte)”,它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说:1个汉字占据2个字节的存储空间。 
字:“字”由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。字是计算机进行数据处理和运算的单位。
KB:K表示1024,也就是2的10次方。1KB表示1K个Byte,也就是1024个字节。
MB:1MB = 220 Bytes = 1048576Bytes

•    1 byte(B) = 8 bits (b) 
•    1 Kilobyte(K/KB) = 10 e3bytes = 1,000 bytes 
•    1 Megabyte (M/MB) = 10 e6bytes = 1,000,000 bytes 
•    1 Gigabyte (G/GB) = 10 e9bytes = 1,000,000,000 bytes 
•    1 Terabyte (T/TB) = 10 e12bytes = 1,000,000,000,000 bytes 








猜你喜欢

转载自www.cnblogs.com/zknublx/p/10165676.html