2017-02-10 160 views
-1

我有5k個文件需要解壓縮。bash - 參數列表太長

2:13:35 2017-01-16 $ unpigz *.gz 
-bash: /usr/local/bin/unpigz: Argument list too long 
12:13:40 2017-01-16 $ unpigz -r *.gz 
-bash: /usr/local/bin/unpigz: Argument list too long 
12:15:45 2017-01-16 $ gunzip *.gz 
-bash: /usr/bin/gunzip: Argument list too long 
12:17:56 2017-01-16 $ cp *.gz ~/Desktop/ 
-bash: /bin/cp: Argument list too long 

bash可以處理的文件數量是否有計數限制?

+3

供進一步閱讀:http://www.linuxjournal.com/article/6060 –

+0

偉大的鏈接分享@ChrisMaes感謝與社區分享信息 –

回答

5

該限制不在參數的上,而是在命令行和環境的組合長度上。 (非正式地,這意味着環境中的字符串越多,命令行就越短)。這個限制是特定於操作系統的,而不是特定的命令。要解決此問題,請使用find重複調用您的命令。

find . -prune -name '*.gz' -exec gunzip {} + 

這裏,gunzip將盡可能多的參數越好,反覆,直到所有匹配的文件解壓縮後調用。