我有一个包含许多文件的文件夹。 我想删除超过30天的文件,所以我使用下面的命令:
find cache/ -mtime +30 -exec rm {} \;
但是,我的SSH会话在命令完成之前断开连接。
如何限制一次删除的文件数量? 例如:
find cache/ -mtime +30 -LIMIT 10000 -exec rm {} \;
在screen会话中运行它。 这样当腻子断开作业仍然在服务器上运行。 只需重新连接并使用screen -r重新连接屏幕会话以查看进度。
您也可以使用nohup运行命令,如下所示:
nohup find cache/ -mtime +30 -exec rm {} \; &
然后cat nohup.out注意输出。
你可以做这样的事情:
find cache/ -mtime +30 | head -n 10000 | xargs rm
这将工作,如果文件名是相当“香草”(没有空格,特殊字符等)和短。
但是,如果您宁愿等待您的原始命令完成,您可以告诉PuTTY每隔一段时间发送一次SSH Keepalive消息; 有关详细信息,请参阅PuTTY文档 。 我通常在45-60秒之间使用一个值,我自己。
find cache/ -mtime +30 -print0 | xargs -0 rm -v
然后它会输出每个被删除的文件,这应该防止你的会话超时。
或者,把它放在cron中,因为它听起来应该是自动的。