É possível obter ou colocar dois arquivos específicos por vez usando SFTP sem curinga?

4

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?

    
por Andrew Swift 03.01.2012 / 12:11

3 respostas

3

você pode fazer:

sftp user@host << EOF!
get /path/to/file1
get /path/to/file2
EOF!

Mas, pessoalmente, prefiro usar scp nesses casos.

    
por 03.01.2012 / 12:48
5

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]
    
por 03.01.2012 / 12:36
2

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.

    
por 03.01.2012 / 12:30