尝试执行以下操作:
# redis-cli keys "resque:lock:*" |xargs -0 redis-cli del
xargs: argument line too long
解决此问题的最佳方法是什么?
摆脱-0
.我不熟悉 redis,但据我所知redis-cli keys
不使用 NUL 分隔符。
没有它的原因是因为它处理报价的方式。从man xargs
:
xargs 从标准输入中读取项目,由空格(可以用双引号或单引号或反斜杠保护)或换行符分隔,并使用任何初始参数执行命令(默认值为/bin/echo),后跟从标准输入读取的项目。 标准输入上的空行将被忽略。
试试xargs -d 'n'
。这将禁用 xarg 的"智能"报价处理,并告诉它逐行读取参数。