![如何在查找中组合“-size”和“-exec rm”?](https://linux22.com/image/77840/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%9F%A5%E6%89%BE%E4%B8%AD%E7%BB%84%E5%90%88%E2%80%9C-size%E2%80%9D%E5%92%8C%E2%80%9C-exec%20rm%E2%80%9D%EF%BC%9F.png)
当我使用它时,它有效:
find /home -name "error_log" -exec rm -rf {} \;
但是当我尝试添加文件大小限制时,它不会删除任何文件:
find /home -size +5000000b -name "error_log" -exec rm -rf {} \;
有什么想法如何让大小限制与此配合使用吗?
答案1
-size
后缀b
is 表示 512 字节块,而不是字节。5000000b
是 2,560,000,000 字节或 2.5 GB
尝试:
find /home -size +5M -name "error_log" -exec rm -rf {} \;
从 GNU 查找手册页:
-size n[cwbkMG] 文件使用 n 个单位的空间。可以使用以下后缀:
‘b’ 表示 512 字节块(如果不使用后缀,则这是默认值)
‘c’代表字节
‘w’ 表示两字节字
‘k’ 代表千字节(1024 字节的单位)
“M”代表兆字节(1048576 字节的单位)
“G”代表千兆字节(1073741824 字节的单位)
该大小不计算间接块,但计算稀疏文件中实际未分配的块。请记住,
%k' and
-printf 的 %b' 格式说明符以不同方式处理稀疏文件。 “b”后缀始终表示 512 字节块,而不是 1 KB 块,这与 -ls 的行为不同。