Shell
gunzip 包含許多文件的文件夾
我有一個包含 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