curl可以在shell下輕松上傳下載ftp上的文件,相比ftp命令更具有優勢,因為它能在單命令條件下,下載或者上傳一個ftp文件,甚至可以刪除文件。
下面看實例:
1、列出ftp服務器上的目錄列表:
1
2
3
|
curl
ftp
:
//www
.quany.info/ --user name:
passwd
curl
ftp
:
//www
.quany.info/ –u name:
passwd
#簡潔寫法
curl
ftp
:
//name
:
passwd
@www.quany.info
#簡潔寫法2
|
2、只列出目錄,不顯示進度條
1
|
curl
ftp
:
//www
.quany.info –u name:
passwd
-s
|
3、下載一個文件:
1
|
curl
ftp
:
//www
.quany.info
/size
.zip –u name:
passwd
-o size.zip
|
4、上載一個文件:
1
|
curl –u name:
passwd
-T size.mp3
ftp
:
//www
.quany.info
/mp3/
|
5、從服務器上刪除文件(使用curl傳遞ftp協議的DELE命令):
1
|
curl –u name:
passwd
ftp
:
//www
.quany.info/ -X
'DELE mp3/size.mp3'
|
6、另外curl不支持遞歸下載,不過可以用數組方式下載文件,比如我們要下載1-10.gif連續命名的文件:
1
|
curl –u name:
passwd
ftp
:
//www
.quany.info
/img/
[1-10].gif –O
#O字母大寫
|
7、要連續下載多個文件:
1
|
curl –u name:
passwd
ftp
:
//www
.quany.info
/img/
[one,two,three].jpg –O
#O字母大寫
|
8、wget下載文件:
用戶賬戶:quany
用戶密碼:123456
ftp下載
1
|
wget
ftp
:
//quany
:123456@www.quany.info
/xxx
.zip
|
http下載
1
|
wget --http-user=quany --http-
passwd
=123456 http:
//www
.quany.info
/xxx
.zip
|
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接着完成此工作的時候,才需要指定此參數。
使用舉例:
1
|
wget -m -l4 -t0 http:
//www
.quany.info/
|
將在本地硬盤建立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/,使用如下命令行:
1
|
wget -L http:
//www
.quany.info/~ppfl/
|
則只提取該個人網站,而不涉及主機www.quany.info上的其他目錄。
-k 轉換連接:HTML文件存盤時,將其中的非相對連接轉換成為相對連接。
-X 在下載FTP主機上的文件時,排除若干指定的目錄
另外,下面參數用於設置wget的工作界面:
-v 設置wget輸出詳細的工作信息。
-q 設置wget不輸出任何信息。