Renaming files in SFTP session

renamesftp

This is part of a SFTP file transfer.

Here are the steps:

  1. Check files with .csv extension and get them to the local directory.
  2. After that, move them to the another folder in the remote connection.

Tried using the rename command but it throws an error "Failure"

Tried using -b batch-file option with sftp but looks like rename command needs a specific file-name instead of a set of files.

So how do I achieve this ?

Best Answer

Works for me, so you will need to provide more information about the problem:

chris@localhost$ finger 2> file.txt
chris@localhost$ sftp remotehost
Connected to remotehost.
sftp> ls -l file.txt
Can't ls: "/home/chris/file.txt" not found
sftp> ls -l file.tmp
Can't ls: "/home/chris/file.tmp" not found

# So the file doesn't exist on the remote in either form

sftp> put file.txt file.tmp
Uploading file.txt to /home/chris/file.tmp
file.txt                                                      100%  501     0.5KB/s   00:01
sftp> ls -l file.txt
Can't ls: "/home/chris/file.txt" not found
sftp> ls -l file.tmp
-rw-r-xr--    0 1001     1001          501 Aug 12 16:35 file.tmp

# It has arrived as file.tmp

sftp> rename file.tmp file.txt
sftp> ls -l file.txt
-rw-r-xr--    0 1001     1001          501 Aug 12 16:35 file.txt
sftp> ls -l file.tmp
Can't ls: "/home/chris/file.tmp" not found

# And been successfully renamed
Related Question