我有一个包含40,000个文件的文件夹,都名为1.gz> 40000.gz
我正在使用mac终端在文件夹中执行此操作
我在终端机中执行的位置:
gunzip 1.gz
它解压缩了一个文件,然后我尝试将所有文件解压缩:
gunzip *.gz
但是它抛出:
-bash: /usr/bin/gunzip: Argument list too long
因为文件太多。
我在这里应该做什么?
答案 0 :(得分:1)
将四分之一的文件移到新的临时文件夹中?移动它们非常快。然后,您可以将它们从temp文件夹移回原始文件夹。实际上,最简单的方法可能是在包含40,000个文件的文件夹内创建一个临时文件夹。然后它们将很容易移入和移出。 Gunzip似乎可以处理约12,200个文件,但不能处理13,300个文件。因此,一次完成10,000个文件应该很容易。
答案 1 :(得分:0)
使用find
:
find . -exec gunzip '{}' +
或者您可以显式查找尚未压缩的文件:
find . -name \*.gz -exec gunzip '{}' +
这些将对当前目录及以下目录中的所有内容执行。如果要将其限制为当前目录,请在选项中添加-maxdepth 1
。
用大括号括起来的单引号是为了正确处理文件名和目录名中的空格。这就是为什么xargs
在尝试解决此类问题时会遇到问题的原因。