从 sftp 服务器获取多个最新文件

Get multiple latest files from sftp server

我正在尝试使用 bash shellscript 从远程服务器获取最后 50 个最近修改的文件。目前,我可以使用以下代码通过 sftp 获取一个文件。这个问题有什么好的解决方案?

我没有在我的服务器上存储来自远程服务器的所有文件的“副本”。所以我不相信 rsync 在这种情况下有效。

fileName=$(echo "ls -1tr" | sftp myid@removeserver | tail -1)
echo "get $fileName $local_directory" | sftp myid@removeserver

当前 bashfor 循环:

destdir="/tmp"

# get last 50 file names and save in array fileName
mapfile -t fileName < <(echo "ls -1tr" | sftp myid@removeserver | tail -50)

# get files from array fileName and save in $destdir
for f in "${fileName[@]}"; do echo "get \"$f\" \"$destdir\""; done | sftp myid@removeserver

我假设文件名不包含换行符。