Como você já tem o comando de extração sh -c 'unzip -d "${1%.*}" ""'
, é possível usar xargs
para converter arquivos de entrada em argumentos:
xargs -a list-of-files -L1 sh -c 'unzip -d "${1%.*}" ""' _
O {}
não é necessário, pois xargs
, por padrão, acrescenta a entrada à lista de argumentos. O -L1
faz com que ele use uma linha de entrada como argumento.
Em seguida, basta redirecionar a saída para um arquivo:
xargs -a list-of-files -L1 sh -c 'unzip -d "${1%.*}" ""' _ &> zip.log
Ou apenas os erros:
xargs -a list-of-files -L1 sh -c 'unzip -d "${1%.*}" ""' _ 2> zip.log