Является ли gunzip file1.gz file2.gz быстрее, чем перебирать файлы и каждый раз копировать
У меня есть процесс, который перебирает список файлов, вызывающих gunzip
на каждом из них. Хотите знать, было бы быстрее просто позвонить gunzip
один раз на все файлы. Как gunzip file1.gz file2.gz
на самом деле работают, и есть ли более быстрый способ, когда вы хотите разархивировать несколько больших файлов?
2 ответа
Это было бы бесполезной микрооптимизацией.
Время зацикливания намного меньше времени распаковки, особенно если, как в вашем случае, вы распаковываете большие файлы.
Делайте то, что более читабельно. Обратите внимание, что зацикливание не вызывает проблем, когда количество файлов огромно, а одна команда gunzip может выйти за пределы командной строки и потребовать xargs(1).
Вы можете сделать их все параллельно с GNU Parallel следующим образом:
parallel gunzip {} ::: *.gz
Это разархивирует их N за раз, где N - это количество процессорных ядер, которые у вас есть.
Если вы хотите индикатор выполнения:
parallel --bar gunzip {} ::: *.gz
Если вы хотите посмотреть, что он будет делать, но на самом деле ничего не делать:
parallel --dry-run ...