smbclient -E -U $USERNAME //server/sharename $PASSWORD -c 'get \dir\filename.gz /dev/fd/1' 2>/dev/null | zcat | yourcommand
O -E instrui o smbclient a enviar todas as mensagens para o erro padrão, em vez do padrão, onde essas mensagens atrapalharão a saída que realmente desejamos. Eu não estou interessado nessas mensagens, então elas são descartadas pelo 2>/dev/null .
O -U $USERNAME indica qual nome de usuário deve ser usado ao conectar-se ao servidor SMB.
O //server/sharename deve ser óbvio.
A senha de $PASSWORD é $USERNAME no servidor SMB.
O -c 'get \dir\filename.gz /dev/fd/1' é o comando que deve ser executado: obtenha o arquivo nomeado (escapando das barras invertidas, dobrando-as) e envie-o para o arquivo local /dev/fd/1 , que é igual à saída padrão do comando. A saída padrão é então canalizada através de zcat para expandi-la antes de qualquer processamento adicional ser necessário.