2013-03-29 46 views
7

我試圖獲取服務器上所有文件的列表(特別是我們在那裏的每個pdf文件)。我試過使用總指揮官並搜索文件。它在某種程度上有效,因爲我得到了我們在那裏得到的每個pdf的列表,但是沒有辦法導出結果(我們有100.000+個文件)從FTP服務器獲取文件列表

我試過使用bash腳本來獲取信息,但我對Linux不是很有經驗,而且我也不知道自己在做什麼。

我的劇本是這樣的:

#!/bin/bash 
hostname="<host>" 
ftp -i -nv $hostname << EOF 
user <username> <password> 
ls -R 
EOF 

運行上面的腳本,我得到

?Invalid command 
501 Illegal PORT command 
ftp: bind: Address already in use 
221 Goodbye 

任何幫助或指點一下什麼搜索將不勝感激。

回答

26

的捲曲度,這是很方便的
curl ftp://yourftpserver/dir/ --user username:password

+9

僅供參考:'curl -l'只返回名稱。 –

+1

你如何編寫腳本以緩存? –

4

ncftpls ftp://yourftpserver/dir/*.pdf

注意如預期那樣的圖案,如*.pdf等在上面的命令做的工作。

對於遞歸,請使用-R。有關更多選項,請參見man ncftpls

ncftplsncftp包提供。對於RHEL,此包可在epel回購協議中找到。

3
curl ftp://user:[email protected]<ip>/path/ 

最後/是必須的,如果它是一個目錄。這工作在curl版本7.29.0

相關問題