Usando gzip , basename e um loop:
for pathname in /mydata/*.gz; do
gzip -dc "$pathname" >"/myoutput/$( basename "$pathname" .gz )"
done
Isso iterará todos os nomes de caminho que corresponderem a /mydata/*.gz e, para cada um desses nomes, usará gzip para descompactar ( -d ) o arquivo na saída padrão ( -c ). A saída é redirecionada para um arquivo em /myoutput . O nome do arquivo será o mesmo do arquivo original, mas sem o sufixo .gz do nome do arquivo ( basename é usado para remover esse bit do nome do caminho, bem como para remover a string /mydata/ inicial).
O comando dentro do loop também pode ser escrito como
gzip -d -o "/myoutput/$( basename "$pathname" .gz )" "$pathname"
que permite que gzip grave o arquivo de saída diretamente em vez de redirecioná-lo.
Isso pressupõe que o arquivo em /mydata seja legível e que você tenha permissão para criar arquivos em /myoutput .