Bash:如何在多个目录下递归ftp某个文件类型

时间:2013-02-14 06:02:47

标签: bash recursion ftp wget glob

是否可以拥有两个通配符?如果没有,是否有另一种解决这个问题的方法?

我正在尝试使用Bash以递归方式从ftp服务器获取文件类型。但是,我遇到的麻烦是我试图从多个目录中删除文件。许多这些目录名称将具有匹配的字符串。客户端将查找具有匹配字符串的所有目录,并从每个目录中获取特定的文件类型。每个目录可以包含许多具有相同扩展名的文件。

我试图做的是递归使用wget。

wget -r 'ftp://anonymous:@$HOST/$PATH/$DIRSTRING*/*.$FILEEXT

这给我一条错误消息,指出找不到$ PATH / $ DIRSTRING * /文件或目录。

我知道wget支持globbing。但是,有可能有两张通配符吗?如果没有,是否有另一种解决这个问题的方法?

最好的问候

1 个答案:

答案 0 :(得分:1)

wget并不适合这种ftp使用...但lftp非常擅长镜像ftp站点数据,它甚至支持globbing! :) 为你的例子:

lftp -e "mirror -I '$DIRSTRING*/*$FILEEXT' /$RPATH mirrorSite" ftp://anonymous@$HOST

参见man lftp / mirror command