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.