9
似乎xargs並沒有一次通過所有的參數,在手冊中說xargs executes the command (default is /bin/echo) one or more times
,我聽說這樣做的原因是xargs將傳入的參數切入組中,並將它們傳遞給命令組組。如果這是正確的,任何人都知道這個組的大小是如何確定的?謝謝linux命令xargs:它傳遞的參數的最大大小?
似乎xargs並沒有一次通過所有的參數,在手冊中說xargs executes the command (default is /bin/echo) one or more times
,我聽說這樣做的原因是xargs將傳入的參數切入組中,並將它們傳遞給命令組組。如果這是正確的,任何人都知道這個組的大小是如何確定的?謝謝linux命令xargs:它傳遞的參數的最大大小?
使用--show-limits
參數。它將列出您系統上的現有限制。
$ xargs --show-limits
Your environment variables take up 4108 bytes
POSIX upper limit on argument length (this system): 2090996
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2086888
Size of command buffer we are actually using: 131072
組大小取決於傳入的每個參數的長度和上面列出的限制。
從xargs
手冊頁,以供參考:
POSIX標準允許實現對參數的大小給exec功能的限制。該限制可能低至4096字節,包括環境的大小。要使腳本具有可移植性,他們不能依賴更大的價值。但是,我知道沒有實際的實際限制是很小的。 --show-limits選項可用於發現當前系統上的實際限制。
這太好了,謝謝。 – user685275 2011-04-25 03:02:40
具有諷刺意味的是,'--show-limits'選項[不是'xargs'的POSIX標準的一部分](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/xargs.html),所以你可以不依靠它。 (我認爲這是一個GNU擴展。) – 2017-05-02 23:02:08