Não há comando no OpenSSH sftp
para mover arquivos para o diretório remoto.
O que você pode fazer é:
- use
sftp
put
para fazer upload dos arquivos (como você já está fazendo) e, em seguida, -
use o comando shell
rm
para apagar os arquivos depois quesftp
terminar (ou seja, apósEOD
):rm $SOURCE_FILE
Ou use
!
para escapar para o shell dosftp
script , depois você enviouput
:send "!rm $SOURCE_FILE\r" expect "sftp>"
É claro que esta não é uma solução atômica. Se um arquivo for adicionado entre put
e rm
, ele será perdido. Para uma solução atômica, você tem que iterar arquivos em um diretório local e fazer o upload e excluí-los um por um. Também para uma solução robusta, você precisa verificar se um upload foi bem-sucedido.