bash - 参数列表太长了

时间:2017-02-10 12:20:43

标签: bash

我有~5k文件,我想解压缩。

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可以处理的文件数量是否有计数限制?

1 个答案:

答案 0 :(得分:5)

限制不在参数的 number 上,而是在命令行和环境的组合长度上。 (非正式地,这意味着环境中的字符串越多,命令行就越短。)此限制特定于操作系统,而不是任何特定命令。要解决此问题,请使用find重复调用您的命令。

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

在这里,gunzip将使用尽可能多的参数进行调用,并重复进行,直到所有匹配的文件都被解压缩为止。