參數列表太長

參數列表太長

我正在嘗試輸入一個帶有非常大參數(大小為 1 MB)的命令,但它顯示“參數列表太長”。我怎麼才能進入這個論點?

作業系統:Linux Ubuntu

答案1

ARG_MAX如果參數大於核心的限制,則無法在可執行檔之間傳遞參數。

如果你有一個清單參數太長,可以將其分成更小的部分,例如使用xargs.這將根據需要多次運行該命令,並提供盡可能多的參數。

語法是xargs command <file.如果省略command,它會顯示其參數,例如echo

作為演示,

xargs -n 4 </etc/motd

將在一行上列印前四個標記(第一次呼叫),然後透過另一行列印接下來的四個標記,依此-n類推ARG_MAX

如果您要執行的命令具有不良副作用,則這可能不起作用。例如,如果command將覆蓋任何先前存在的./a.out文件,那麼顯然您將在完成後留下最後一次運行的結果。

如果您可以設定或修改command它讀取檔案或標準輸入,而不是命令列參數,則可以解決該限制。檔案或串流可以比 更大ARG_MAX,而且通常是這樣。

相關內容