如何在 Linux 上进行缓慢的递归删除?

如何在 Linux 上进行缓慢的递归删除?

我想删除生产服务器上的一些目录。但是上次删除它们时,它们导致与服务器的连接开始超时,因为磁盘 IO 被淹没了。是否有命令可以用来慢慢删除这些目录,或者我应该自己编写一个带有一些自由睡眠的 shell 脚本?

答案1

如果sleep您的系统返回 0,那么您可以将其粘贴在find命令中:

find ... -exec sleep 1 \; -delete

答案2

这是替代方案

find . -type f -print0 | xargs -n 5 -0 -I {} rm {}; sleep 10

更改参数

-n 5# 这是将同时传递给 rm 命令的文件数。

sleep 10# 这是在执行下一个 rm 块之前命令将休眠的时间(以秒为单位)

答案3

怎么样:

ls | xargs -I {} -n 1 sh -c'echo {};睡眠1'

只要将 echo 替换为 rm 就可以了。

相关内容