Não há comando no OpenSSH sftp para mover arquivos para o diretório remoto.
O que você pode fazer é:
- use
sftpputpara fazer upload dos arquivos (como você já está fazendo) e, em seguida, -
use o comando shell
rmpara apagar os arquivos depois quesftpterminar (ou seja, apósEOD):rm $SOURCE_FILEOu use
!para escapar para o shell dosftpscript , 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.