você pode fazer:
sftp user@host << EOF!
get /path/to/file1
get /path/to/file2
EOF!
Mas, pessoalmente, prefiro usar scp
nesses casos.
De um diretório de dezenas de arquivos, é possível GET ou PUT dois arquivos de uma vez usando o SFTP ?
Eu não quero usar um curinga porque eu não sei necessariamente os nomes de todos os arquivos e não quero afetar outros arquivos.
Espero que haja algo como:
get javascript.gs,stylesheet.css
A partir da pesquisa do Google e procurando em vários Stackexchanges, não parece que isso seja possível.
Alguém sabe ao certo?
Se possível, use lftp
como seu cliente sftp (disponível para todas as distros relevantes do Linux e * BSDs em suas coleções de pacotes):
lftp sftp://[email protected]
Então você pode usar o comando mget
:
mget javascript.gs stylesheet.css
Se lftp
não for possível usar, você poderá usar a opção -b
(lote) no comando padrão sftp
. Primeiro crie um arquivo de texto contendo
get javascript.gs
get stylesheet.css
E, em seguida, use o comando
sftp -b yourtextfile.txt [email protected]
Você não pode fazer isso com o sftp, a sintaxe para get é get remote-path [caminho-local], o que significa que o segundo parâmetro, se fornecido, será usado para renomear o arquivo no sistema local. Da mesma forma colocar iria renomear o arquivo enviado se um segundo parâmetro for fornecido.
Você poderia usar o scp para o trabalho
scp [email protected]:"/path/to/javascript.gs /path/to/stylesheet.css" /local/path
Você também pode usar um script sftp.