linux 根据文件大小查找文件

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

-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等。this

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

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

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

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

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

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

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

说明:二进制

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

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

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 
相关文章
相关标签/搜索