【发布时间】:2016-02-23 14:19:02
【问题描述】:
我正在尝试删除我们的系统为搜索机器人创建的会话文件。上次行得通,这次不行,我猜是因为会话文件的数量增加了。
我使用的是grep -l 'spider' * | xargs rm
但现在我收到来自grep 的Argument list too long 错误。
有什么方法可以使用find 与grep 和rm 来完成此任务?
编辑:
所有文件中都没有空格。
我在想,由于grep 无法处理文件数量,我可能会使用find 来管理大量文件,因为我认为(可能是错误的)find 和exec {} 会自动将文件分成可管理的块。但也许这行不通。
不过,无论如何,我真的需要删除这些文件!
编辑:
我无法解决这个问题,真的。我删除了旧文件,直到文件数量足够小,我可以运行它:
grep -l "spider" * | xargs rm
然后我设置了一个 cron 来每隔几分钟运行一次命令。我现在能够延长会话生命周期,因为 cron 的频率意味着运行 rm 命令的文件更少。
【问题讨论】:
-
抱怨参数数量的不是rm吗?
-
您要删除的文件是否有任何共同的文件名模式?有什么办法可以避免查看每个文件的内容?
-
@aguibert 目前没有模式。文件名是会话哈希。没有办法从机器人中分辨出人类会话哈希。但也许将来我可以更改会话创建代码并专门命名机器人会话文件。