Comando SFTP - mput do Unix-transfer todos os ficheiros com um prefixo específico

Tenho vários ficheiros numa pasta. Mas eu gostaria de transferir para o servidor SFTP apenas arquivos começando com ABC ou XYZ. Como filtro isto no meu comando?

Author: Martin Prikryl, 2017-06-16

2 answers

Se os seus ficheiros estiverem na pasta actual:

sftp user@server << EOF
cd /destination
$(for i in ABC* XYZ*; do echo "put $i"; done)
EOF

Resultado (exemplo):

Connected to server.
sftp> cd /destination
sftp> put ABCfoo.txt
Uploading ABCfoo.txt to /destination/ABCfoo.txt
ABCfoo.txt                                                                100%    0     0.0KB/s   00:00    
sftp> put XYZfoo.txt
Uploading XYZfoo.txt to /destination/XYZfoo.txt
XYZfoo.txt                                                                100%    0     0.0KB/s   00:00  
 1
Author: Cyrus, 2017-06-16 17:12:22

Basta usar uma máscara de ficheiros em sftp put comando (ou mput também conhecido por):

cd /destination/path
put ABC*
put XYZ*

Note que, ao contrário do cliente common command-line ftp, no OpenSSH sftp o put em si pode enviar vários ficheiros(e mput é apenas um nome falso para put).

 0
Author: Martin Prikryl, 2017-09-12 15:56:29