Shell

gunzip 包含許多文件的文件夾

  • October 7, 2020

我有一個包含 36,348 個文件 gz 文件的文件夾。我想解壓縮所有這些。

跑步:

gunzip ./*

結果是

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

解決這個問題的最簡單方法是什麼?

嘗試:

find . -type f -exec gunzip {} +

這假定目前目錄僅包含您要解壓縮的文件。

限制在核心中,並且是傳遞給execve()用於執行命令的系統呼叫的參數和環境的累積大小。您可以將其拆分為多個呼叫。

對目前目錄下的gunzip所有文件:.gz

zsh

autoload zargs # best in ~/.zshrc
zargs ./*.gz -- gunzip

ksh93

command -x gunzip ./*.gz

GNUly:

printf '%s\0' *.gz | xargs -r0 gunzip

POSIXly(和 with gunzip):

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

(請注意,也會解壓縮隱藏.gz文件)

或者您可以提高某些系統的限制。在最新版本的 Linux 上:

ulimit -s unlimited
gunzip ./*.gz

引用自:https://unix.stackexchange.com/questions/151815