搜索/grep ftp 远程文件名

sda*_*aau 5 command-line ftp

我已经看过如何在 FTP 上执行 grep?- 这个问题意味着grep需要远程文件内容中的 a ;因此,答案是该ftp协议不支持(需要在本地下载所有远程文件,然后才能启动对其内容的搜索)。

我正在寻找更“简单”的东西 - 我只想 grep/搜索远程文件名;我想这需要以某种方式下载远程目录树。我怎么能通过命令行做到这一点?

sda*_*aau 4

这是一种方法 - 使用 GNU ftpsync

请注意, http://www.gnu.org/software/ftpsync/上的下载链接目前似乎已损坏;你需要的页面是http://savannah.gnu.org/projects/ftpsync ...看来我是通过git得到的,可能是通过地址:

git clone git://git.sv.gnu.org/ftpsync.git
Run Code Online (Sandbox Code Playgroud)

请注意,这ftpsync是一个 Perl 脚本,位于src/此存储库的目录中。ftpsync.py(另请注意,在 Python 中还有一个不同的工具,可在ftpsync2d - Google Project Hosting中找到)

不管怎样,技巧就是尝试将远程 FTP 树同步到空的本地目录,同时设置ftpsync为信息模式 ( -i)(因此不执行实际的下载操作),并且处于详细模式。但请注意,详细模式 ( -v) 似乎有问题(与不使用 相比,我得到的标准输出输出甚至更少-v);所以下面我使用了-d调试模式,它似乎像广告中那样工作。

最终,我这样做:

$ mkdir /tmp/test
$ cd /tmp/test
$ /path/to/ftpsync-git/src/ftpsync -d -i ftp://user:password@ftp.mysite.com/www .   2>&1 | tee _ftpsync_.log

Building remote tree ftp://user@ftp.mysite.com/www
Detecting if passive needed... Passive
Logging in as user.
Sync file /tmp/Q44CbrEGUU => Q44CbrEGUU
Localtime before 1393782144, Remote 1393782120, after 1393782144
Clock sync offset: 0h00m00s
Dir:  in www
Mod:1327878000 Size:737 .htaccess
Mod:1237503600 Size:241 .hiddenfile
Dir: stuff in www
...
Mod:1353452400 Size:4812800     somefile

Building local tree of .
Dir: 
Mod: Size:      
Died at /path/to/ftpsync-git/src/ftpsync line 1011.
Run Code Online (Sandbox Code Playgroud)

完成此过程后,您应该www/在本地本地远程服务器上获得所有文件和目录的列表_ftpsync_.log- 因此稍后您可以通过该文件进行 grep 搜索,以搜索远程文件名和子目录名称。

好吧 - 仍然想听听是否有替代工具可以做到这一点。