天天看點

使用curl / wget指令上傳下載下傳FTP

curl可以在shell下輕松上傳下載下傳ftp上的檔案,相比ftp指令更具有優勢,因為它能在單指令條件下,下載下傳或者上傳一個ftp檔案,甚至可以删除檔案。

下面看執行個體:

1、列出ftp伺服器上的目錄清單:

<code>curl </code><code>ftp</code><code>:</code><code>//www</code><code>.quany.info/ --user name:</code><code>passwd</code>

<code>curl </code><code>ftp</code><code>:</code><code>//www</code><code>.quany.info/ –u name:</code><code>passwd</code><code>#簡潔寫法</code>

<code>curl </code><code>ftp</code><code>:</code><code>//name</code><code>:</code><code>passwd</code><code>@www.quany.info </code><code>#簡潔寫法2</code>

2、隻列出目錄,不顯示進度條

<code>curl </code><code>ftp</code><code>:</code><code>//www</code><code>.quany.info –u name:</code><code>passwd</code><code>-s</code>

3、下載下傳一個檔案:

<code>curl </code><code>ftp</code><code>:</code><code>//www</code><code>.quany.info</code><code>/size</code><code>.zip –u name:</code><code>passwd</code><code>-o size.zip</code>

4、上載一個檔案:

<code>curl –u name:</code><code>passwd</code><code>-T size.mp3 </code><code>ftp</code><code>:</code><code>//www</code><code>.quany.info</code><code>/mp3/</code>

5、從伺服器上删除檔案(使用curl傳遞ftp協定的DELE指令):

<code>curl –u name:</code><code>passwd</code><code>ftp</code><code>:</code><code>//www</code><code>.quany.info/ -X </code><code>'DELE mp3/size.mp3'</code>

6、另外curl不支援遞歸下載下傳,不過可以用數組方式下載下傳檔案,比如我們要下載下傳1-10.gif連續命名的檔案:

<code>curl –u name:</code><code>passwd</code><code>ftp</code><code>:</code><code>//www</code><code>.quany.info</code><code>/img/</code><code>[1-10].gif –O </code><code>#O字母大寫</code>

7、要連續下載下傳多個檔案:

<code>curl –u name:</code><code>passwd</code><code>ftp</code><code>:</code><code>//www</code><code>.quany.info</code><code>/img/</code><code>[one,two,three].jpg –O </code><code>#O字母大寫</code>

8、wget下載下傳檔案:

使用者賬戶:quany

使用者密碼:123456

ftp下載下傳

<code>wget </code><code>ftp</code><code>:</code><code>//quany</code><code>:[email protected]</code><code>/xxx</code><code>.zip</code>

http下載下傳

<code>wget --http-user=quany --http-</code><code>passwd</code><code>=123456 http:</code><code>//www</code><code>.quany.info</code><code>/xxx</code><code>.zip</code>

9、wget參數:

wget的參數較多,但大部分應用隻需要如下幾個常用的參數:

-r 遞歸;對于HTTP主機,wget首先下載下傳URL指定的檔案,然後(如果該檔案是一個HTML文檔的話)遞歸下載下傳該檔案所引用(超級連接配接)的所有檔案(遞歸深度由參數-l指定)。對FTP主機,該參數意味着要下載下傳URL指定的目錄中的所有檔案,遞歸方法與HTTP主機類似。

-N 時間戳:該參數指定wget隻下載下傳更新的檔案,也就是說,與本地目錄中的對應檔案的長度和最後修改日期一樣的檔案将不被下載下傳。

-m 鏡像:相當于同時使用-r和-N參數。

-l 設定遞歸級數;預設為5。-l1相當于不遞歸;-l0為無窮遞歸;注意,當遞歸深度增加時,檔案數量将呈指數級增長。

-t 設定重試次數。當連接配接中斷(或逾時)時,wget将試圖重新連接配接。如果指定-t0,則重試次數設為無窮多。

-c 指定斷點續傳功能。實際上,wget預設具有斷點續傳功能,隻有當你使用别的ftp工具下載下傳了某一檔案的一部分,并希望wget接着完成此工作的時候,才需要指定此參數。

使用舉例:

<code>wget -m -l4 -t0 http:</code><code>//www</code><code>.quany.info/</code>

将在本地硬碟建立http://www.quany.info/的鏡像,鏡像檔案存入目前目錄下一個名為www.quany.info的子目錄中(你也可以使用-nH參數指定不建立該子目錄,而直接在目前目錄下建立鏡像的目錄結構),遞歸深度為4,重試次數為無窮(若連接配接出現問題,wget将堅韌不拔地永遠重試下去,知道任務完成!)

另外一些使用頻率稍低的參數如下:

-A acclist / -R rejlist:

這兩個參數用于指定wget接受或排除的檔案擴充名,多個名稱之間用逗号隔開。例如,假設我們不想下載下傳MPEG視訊影像檔案和.AU聲音檔案,可使用如下參數:

-R mpg,mpeg,au

其它參數還有:

-L 隻擴充相對連接配接,該參數對于抓取指定站點很有用,可以避免向宿主主機的其他目錄擴散。例如,某個人網站位址為:http://www.quany.info/~ppfl/,使用如下指令行:

<code>wget -L http:</code><code>//www</code><code>.quany.info/~ppfl/</code>

則隻提取該個人網站,而不涉及主機www.quany.info上的其他目錄。

-k 轉換連接配接:HTML檔案存盤時,将其中的非相對連接配接轉換成為相對連接配接。

-X 在下載下傳FTP主機上的檔案時,排除若幹指定的目錄

另外,下面參數用于設定wget的工作界面:

-v 設定wget輸出詳細的工作資訊。

-q 設定wget不輸出任何資訊。

<a href="http://fanqiang.chinaunix.net/a6/b9/20020514/060201225.html" target="_blank">http://fanqiang.chinaunix.net/a6/b9/20020514/060201225.html</a>

本文轉自 拾瓦興閣 51CTO部落格,原文連結:http://blog.51cto.com/ponyjia/1201739