我正在使用以下命令
签署一大套RPM软件包(50000)find $1 -name \*.rpm |xargs rpm --resign
作为RPM命令结构的一部分,它要求输入密码。我正在使用expect脚本来提供密码,就像这样。
expect -c "
spawn $1
expect \"Enter pass phrase: \"
send $2\r
interact
这对前1400个奇数文件非常有效。之后我再次提示输入密码。这次我必须手动提供它。就像那样,每1400个奇数文件就会发生这种情况。
我需要帮助才能理解
非常感谢您的帮助。感谢
答案 0 :(得分:3)
我认为问题位于xargs
。 xargs
会尝试为命令提供尽可能多的参数,直到整个命令行超出限制。因此,当您有许多文件时,xargs
可能需要多次调用rpm
。 GNU xargs
' --show-limits
可以" 显示操作系统强加的命令行长度限制"。例如,在我的系统上:
#xargs --show-limits<的/ dev / null的
您的环境变量占用1689字节
参数长度的POSIX上限和下限:2048,2094592
我们实际可以使用的最大命令长度:2092903
我们实际使用的命令缓冲区大小:132761
#