Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
while [ -f *.tar.gz ]; do filename="$(ls -1 *.tar.gz | head -n 1)"; tar -xvf $filename && rm $filename; done;
tar --to-command='tar --to-command="tar -xzvf -" -xzvf -' -xzvf archive.tar.gz
А если там будет 3 уровня вложенности?
N=3 CMD="tar -xzvf -" for ((i=0; i < $N; ++i)) ; do CMD=`printf "tar --to-command=%q -xzvf -" "$CMD"` ; done eval "$CMD < archive.tar.gz"
--to-command
tar -xzvOf archive.tar.gz | tar -xzvO | tar -xzvO | … | tar -xzvO | tar -xzv