类似于exec rm的答案,但不需要每个找到的文件的进程:
find . -size +100k -delete
一内胆:
find . -size +100k -exec rm {} \;
第一部分(find . -size +100k
)查找从当前目录(.
)开始超过(+
)100 kBytes(100k
)的所有文件。
第二部分(-exec rm {} \;
)在每个找到的文件上调用给定命令。 {}
是当前文件名的占位符,包括路径。 \;
只是标志着命令的结束。
请记住,通过运行原始find
始终检查您的过滤条件是否正确:
find . -size +100k
或者,您甚至可以在删除之前制作备份副本:
find . -size +100k -exec cp --parents {} ~/backup \;
python安装在所有基于unix的操作系统上,为什么不使用它而不是bash?
我总觉得python比awk
和sed
魔法更具可读性。
这是我写的python代码:
import os
Kb = 1024 # Kilo byte is 1024 bytes
Mb = kb*kb
Gb = kb*kb*kb
for f in os.listdir("."):
if os.stat(f).st_size>100*Kb:
os.remove(f)
这是与python -c
的单线版本
python -c "import os; [os.remove(f) for f in os.listdir('.') if os.stat(f).st_size>100*1024]"
如果您想以递归方式应用搜索,请参阅this