我只是偶然发现Linux上的find命令,简而言之,我需要在某个文件夹中查找所有小于2Kb的文件,因此发出了以下命令:
find /folder_to_search_into/ -type f -size -2k
根据查找的手册页应该返回小于2 KB的所有内容
但是我注意到的是,它丢失了一些文件,大小在1到2Kb之间。
然后我发出
find /folder_to_search_into/ -type f -size -2048c
由于“ c”代表字节,因此它应该完全等效,在这种情况下,它找到了我正在寻找的所有文件。
任何想法,为什么这种行为?我可能在这里找不到明显的地方。不知道它是否与此注释有关(从“查找手册”页面-在“尺寸”部分中):
该大小不计入间接块,但计入未实际分配的稀疏文件中的块。请记住,-printf的'%k'和'%b'格式说明符对稀疏文件的处理方式不同。后缀“ b”始终表示512字节的块,从不表示1千字节的块,这与-ls的行为不同。
1
在我的头上,您应该检查文件的实际大小,它取决于文件系统(EXT4的最小值为4k)。同样基于1000与1024进行计算
—
。–仅浏览
文件系统为EXT4,使用该
—
adriano72
-size -2k
参数找不到的文件的实际大小为1343字节。