Supondo que você não tenha nenhum arquivo .xml
nesse diretório quando iniciar e cada .zip
tenha exatamente um arquivo .xml
, você poderá fazer isso.
for z in *.zip; do
unzip $z
mv *.xml 'echo $z | sed "s/\.zip$/.xml/"'
done
Desculpe esta pergunta é trivial, mas não consegui fazê-la funcionar: Eu tenho uma pasta cheia de arquivos .zip, cada arquivo .zip contém exatamente um arquivo .xml. Os arquivos zip possuem nomes sensíveis como a.zip etc., enquanto o arquivo .xml contido neles tem algum "nome aleatório" .xml
Agora quero descompactar todos os arquivos .zip da pasta, preservando o nome dos arquivos .zip, para que a .zip seja descompactado em a . xml, b .zip em b .xml etc ...
Eu só consegui obter um lote descompactando com o comando:
for z in *.zip; do unzip "$z"; done
Como faço para melhorar isso para manter os nomes?
Supondo que você não tenha nenhum arquivo .xml
nesse diretório quando iniciar e cada .zip
tenha exatamente um arquivo .xml
, você poderá fazer isso.
for z in *.zip; do
unzip $z
mv *.xml 'echo $z | sed "s/\.zip$/.xml/"'
done