Obrigado por todas as sugestões, peguei pedaços das sugestões de todos e criei este comando. No meu caso, este é exatamente o comando que eu precisava.
for f in /mydirectory/*.zip; do
n=$(echo ${f##*/} | cut -c1-30);
unzip -d /mydirectory/$n $f;
done
- Faz um loop por todos os arquivos zip
- Echos cada arquivo zip (apenas nome do arquivo, nenhuma informação extra como tamanho ou caminho é exibido) e, em seguida, mostra apenas os primeiros 30 caracteres & armazena na variável n
- Em seguida, ele extrai o conteúdo em um novo diretório (usando a variável n) para cada arquivo zip.
No meu caso, coloco isso em um script que é executado em outro diretório.