【发布时间】:2012-07-24 17:25:46
【问题描述】:
我想删除$DIR_TO_CLEAN 早于$DAYS_TO_SAVE 天的文件。简单:
find "$DIR_TO_CLEAN" -mtime +$DAYS_TO_SAVE -exec rm {} \;
我想我们可以为rm 添加-type f 或-f 标志,但我真的很想计算被删除的文件数量。
我们可以天真地这样做:
DELETE_COUNT=`find "$DIR_TO_CLEAN" -mtime +$DAYS_TO_SAVE | wc -l`
find "$DIR_TO_CLEAN" -mtime +$DAYS_TO_SAVE -exec rm {} \;
但是这个解决方案还有很多不足之处。除了命令重复之外,如果rm 删除文件失败,这个 sn-p 会高估计数。
我对重定向、管道(包括命名管道)、子shell、xargs、tee 等非常满意,但我渴望学习新技巧。我想要一个适用于 bash 和 ksh 的解决方案。
你如何计算find删除的文件数量?
【问题讨论】:
-
不,这不是重复的。另一个问题没有询问或解决当
-execed 命令失败时计数会发生什么。