
我正在嘗試輸入一個帶有非常大參數(大小為 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
,而且通常是這樣。