MacOs - распаковка большого количества файлов .gz - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть папка с 40 000 файлов, все с именем 1.gz> 40000.gz

Я использую Mac-терминал для выполнения этого в папке

Где в моем терминале я выполнил:

gunzip 1.gz

и он распаковал один файл, затем я попытался распаковать все:

gunzip *.gz

, но выдает:

-bash: /usr/bin/gunzip: Argument list too long

, потому что файлов слишком много.

Что мне здесь делать?

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Использование find:

find . -exec gunzip '{}' +

или вы можете явно искать файлы, которые еще не были распакованы:

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

Те сделают это для всего в текущем каталоге и ниже. Если вы хотите ограничить его текущим каталогом, добавьте -maxdepth 1 к опциям.

Одинарные кавычки вокруг фигурных скобок предназначены для правильной обработки пробелов в именах файлов и каталогов. Вот почему xargs будет иметь проблемы при попытке решить подобные проблемы.

0 голосов
/ 10 сентября 2018

Переместить четвертую часть файлов в новую временную папку? Перемещать их очень быстро. Затем вы можете переместить некоторые из временной папки обратно в исходную папку. На самом деле, самый простой способ - создать временную папку внутри папки с 40000 файлами. Тогда они будут легко входить и выходить. Gunzip работает примерно с 12 200 файлами, но не с 13 300 файлами. Таким образом, выполнение 10000 ваших файлов одновременно должно быть легким.

...