我有~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可以处理的文件数量是否有计数限制?
答案 0 :(得分:5)
限制不在参数的 number 上,而是在命令行和环境的组合长度上。 (非正式地,这意味着环境中的字符串越多,命令行就越短。)此限制特定于操作系统,而不是任何特定命令。要解决此问题,请使用find
重复调用您的命令。
find . -prune -name '*.gz' -exec gunzip {} +
在这里,gunzip
将使用尽可能多的参数进行调用,并重复进行,直到所有匹配的文件都被解压缩为止。