Se você não precisar renomear os arquivos de saída, sugiro algo assim:
#!/bin/bash
for file in *.cbz
do
cover="'zipinfo -2 "$file" | awk 'NR==2 {exit} 1''"
unzip -j "$file" "$cover"
done;
Salve-o em um arquivo como script.sh
e coloque-o no mesmo diretório de seus quadrinhos. Em seguida, conceda a permissão de execução:
chmod +x script.sh
E execute:
./script.sh
Como isso funciona?
Podemos obter uma lista de todos os arquivos em um arquivo zip usando zipinfo
:
zipinfo -2 mycomic.cbz
gera algo semelhante a:
First file within the archive.jpg
Second file within the archive.jpg
...
Em seguida, usando awk 'NR==1 { print }'
, podemos retornar o primeiro nome de arquivo, que é: First file within the archive.jpg
.
Agora, para extrair este arquivo, posso usar unzip
como:
unzip -j mycomic.cbz "First file within the archive.jpg"