如何使用curl從FTP站點下載名為emp*的所有文件

如何使用curl從FTP站點下載名為emp*的所有文件

如何取得從 FTP 網站目錄下載的檔案名稱如 emp*.txt 的所有檔案?

請建議。

答案1

bash成功地針對 CentOS 6.5 FTP 鏡像測試了這款襯墊,但我已將其匿名化以防止濫用:

for i in `curl -i ftp://ftp.example.com/pub/centos/6.5/updates/i386/repodata/ | awk '{print $9}' | grep ^8`; do curl -O http://ftp.eample.com/pub/centos/6.5/${i} ; done

解釋一下,這會轉到 ftp 伺服器,取得目錄清單(第一個curl),將資料透過管道傳輸到 awk 中以僅傳回檔案名稱。最後,將其透過管道傳輸到 grep 中,僅匹配以數位 8 開頭的文件,以模擬您的emp*需求。

這些過濾後的檔案名稱成為變量i,然後我使用一個簡單的 for 迴圈來取得每個檔案名,方法是將它們附加到第二個 curl 請求的 URL 中。我最終得到了這兩份文件:

-rw-r--r--  1 adam  staff      362 11 Jul 13:22 819455e9f840760fcbdccf0283e4324ceabc8512f246e911d39424760ed1729e-primary.xml.gz
-rw-r--r--  1 adam  staff      360 11 Jul 13:22 8e4d3dd261375d31b35b6870e187d841633c68a400e4d11bb7234fea517cdbaa-other.xml.gz

答案2

如果我沒有遺漏什麼,您需要做的就是 cd 進入目錄並使用“mget emp*”。如果您不想回應每個檔案是/否,您可能需要更改「提示」設定(這是切換命令)。

相關內容