我试图输入一个参数很大的命令(1MB大小),但是它写着“参数列表太长了”。我怎样才能加入这个论点呢?
OS: Linux Ubuntu
发布于 2017-04-27 17:29:49
如果参数大于内核的ARG_MAX限制,则无法在可执行文件之间传递参数。
如果您有一个太长的参数列表,则可以将其分割成较小的部分,例如使用xargs。这将根据需要多次运行该命令,根据需要提供尽可能多的参数。
语法是xargs command <file。如果省略command,它将显示其参数,如echo。
作为一个演示,
xargs -n 4 </etc/motd将在一行(第一次调用)上打印前四个令牌,然后通过另一行打印四个令牌,等等( -n参数设置参数的最大数量,因此根本不使用ARG_MAX限制)。
如果要运行的命令具有不良的副作用,则可能无法运行。例如,如果command将覆盖以前存在的任何./a.out文件,那么很明显,它完成后的最后一次运行的结果将留给您。
如果您可以配置或修改command,使其读取文件或标准输入,而不是命令行参数,则可以绕过限制操作。一个文件或流可以比ARG_MAX大得多,而且经常是这样的。
https://unix.stackexchange.com/questions/361728
复制相似问题