如何使用lftp批处理文件获取特定文件

时间:2014-07-23 10:59:56

标签: bash get sftp lftp

我实际上是尝试使用SFTP从另一台服务器获取当前日期的所有文件。然而,*在SFTP中不起作用,所以我看不出我该怎么做......

这是我到目前为止所完成的批次:

#!/bin/sh
today=$(date +%Y%m%d)
lftp<<END_SCRIPT
open sftp://name@server
get $today*
bye
END_SCRIPT

@Martin Prikryl

谢谢,现在工作正常。 在你回答之前我已经搜索了一下,我发现了这个(效率低很多^^):

today=$(date +%Y%m%d)
var=`echo `echo ls -1 | sftp name@domain:dir1/subdir` | sed -n 's/ /\n/gp'|sed -n '/^$today/p'`
lftp<<END_SCRIPT
open sftp://name@server
get $var
bye
END_SCRIPT

1 个答案:

答案 0 :(得分:2)

使用mget代替get

请参阅https://lftp.tech/lftp-man.html

  

获取
  ...
  不扩展通配符,请使用mget   ...
  的 MGET
  ...
  获取具有扩展通配符的选定文件。