wget 命令用法
1. 用法/命令格式
wget [OPTION]... [URL]...
wget [參數列表] [目標軟件、網頁的網址]
長選項所必須的參數在使用短選項時也是必須的
2. 常用參數
- 啟動:
-V, --version # 顯示 Wget 的版本信息並退出
-h, --help # 打印幫助
-b, --background # 啟動后轉入后台
- 記錄和輸入文件:
-o, --output-file=FILE # 將日志信息寫入【FILE】
-a, --append-output=FILE # 將信息添加至【FILE】
-q, --quiet # 安靜模式 (無信息輸出)
-v, --verbose # 詳細輸出 (默認)
-nv, --no-verbose # 關閉詳細輸出,但不進入安靜模式
-i, --input-file=FILE # 下載本地或外部 [FILE] 中的 URL
- 下載:
-t, --tries=NUMBER # 設置重試次數為【NUMBER】(0 代表無限制)
--retry-connrefused # 即使拒絕連接也重試
-O, --output-document=FILE # 將文檔寫入【FILE】(可以理解為把下載的文件重命名改為【FILE】)
-nc, --no-clobber # 不要下載已存在文件
-c, --continue # 斷點續傳下載文件(繼續獲取部分下載)
-N, --timestamping # 只獲取比本地文件新的文件
-S, --server-response # 打印服務器響應頭信息
--spider # 不下載任何文件
--limit-rate=RATE # 限制下載速率為 [RATE]
--ignore-case # 匹配文件/目錄時忽略大小寫
--user=USER # 將 ftp 和 http 的用戶名均設置為【USER】
--password=PASS # 將 ftp 和 http 的密碼均設置為【PASS】
--ask-password # 提示輸入密碼
- 目錄:
-nd, --no-directories # 不創建目錄
-x, --force-directories # 強制創建目錄
-nH, --no-host-directories # 不要創建主機(www.cnglogs.com)目錄
--protocol-directories # 在目錄中使用協議名稱(從https開始創建目錄)
-P, --directory-prefix=PREFIX # 保存文件到指定的【PREFIX】目錄
--cut-dirs=NUMBER # 忽略遠程目錄中【NUMBER】個目錄層。
- HTTP選項:
--http-user=USER # 設置 http 用戶名為【USER】
--http-password=PASS # 設置 http 密碼為【PASS】
--no-cache # 不使用服務器緩存的數據。
--default-page=NAME # 改變默認頁名稱 (通常是“index.html”)
--no-cookies # 不使用 cookies
--save-cookies=FILE # 會話結束后保存 cookies 至【FILE】
- HSTS選項:
--no-hsts # 禁用 HSTS
--hsts-file # HSTS 數據庫路徑(將覆蓋默認值)
- FTP選項:
--ftp-user=USER # 設置 ftp 用戶名為【USER】
--ftp-password=PASS # 設置 ftp 密碼為【PASS】
--no-glob # 不在 FTP 文件名中使用通配符展開
--preserve-permissions # 保留遠程文件的權限
--retr-symlinks # 遞歸目錄時,獲取鏈接的文件 (而非目錄)
- 遞歸下載:
-r, --recursive # 指定遞歸下載
-l, --level=NUMBER # 最大遞歸深度 (inf 或 0 代表無限制,即全部下載)。
--delete-after # 下載完成后刪除本地文件
--backups=N # 寫入文件 X 前,輪換移動最多 N 個備份文件
-K, --backup-converted # 在轉換文件 X 前先將它備份為 X.orig
- 遞歸接受/拒絕:
-A, --accept=LIST # 逗號分隔的可接受的擴展名列表
-R, --reject=LIST # 逗號分隔的要拒絕的擴展名列表
--accept-regex=REGEX # 匹配接受的 URL 的正則表達式
--reject-regex=REGEX # 匹配拒絕的 URL 的正則表達式
--regex-type=TYPE # 正則類型 (posix|pcre)
-D, --domains=LIST # 逗號分隔的可接受的域名列表
--exclude-domains=LIST # 逗號分隔的要拒絕的域名列表
-I, --include-directories=LIST # 允許目錄的列表
-X, --exclude-directories=LIST # 排除目錄的列表
-np, --no-parent # 不追溯至父目錄
3. 常用實例
- 下載單個文件/網頁
wget https://www.rarlab.com/rar/rarlinux-6.0.1.tar.gz # 下載rarlinux-6.0.1.tar.gz文件
wget https://www.rarlab.com/download.htm # 下載 download.htm 網頁
- 將下載的文件名改為指定文件名 (參數 “O” )
wget -O edit.html https://i.cnblogs.com/posts/editpostId=14660645
# 默認下載保存的文件為“editpostId=14660645”
# 使用 -O 參數后,保存的文件為指定文件名,這里是“edit.html”
- 斷點下載(參數 “c” )
# 這個參數適合下載大文件,網速不理想的場景
# 借助參數 "c", 可以繼續從文件中斷的地方繼續下載
wget -c https://www.rarlab.com/rar/rarlinux-6.0.1.tar.gz
- 后台下載(參數 “b”)
# 對於下載大文件時,我們可以使用參數 “b”,將進程切換到后台下載
# 切換后台下載后,我們可以通過 “wget-log”查看下載進度
# -t 參數表示重試次數,例如需要重試100次,那么就寫-t 100,如果設成-t 0,那么表示無窮次重試,直到連接成功
wget -b https://www.rarlab.com/rar/rarlinux-6.0.1.tar.gz
- 批量下載(參數 “i”)
# 自定義一個文件URLlist.txt,將需要下載的URL都輸入進去,然后使用參數 “i”指定改文件即可
wget -i URLlist.txt
- 檢查網頁是否可訪問,而不用下載(“S“:打印響應信息,“spaider”:不下載)
wget [-S] --spaider https://www.cnblogs.com/cure/p/14660645.html
- 指定文件格式下載(“A” 指定下載文件格式,“R”指定忽略下載文件格式)
wget -A png https://www.cnblogs.com/ 或 wget --accept=LIST https://www.cnblogs.com/
wget -R gif https://www.cnblogs.com/ 或 wget --reject=LIST https://www.cnblogs.com/
# LIST表示可以指定多個格式
- 指定用戶名密碼下載
# 此場景適合部分訪問需要用戶名和密碼驗證的 URL下載
wget --user=USER --password=PASS https://www.cnblogs.com/cure/p/14660645.html # 此方式密碼明文顯示
wget --user=USER --ask-password https://www.cnblogs.com/cure/p/14660645.html # 此方式密碼是按回車后,提示輸入密碼,密碼不顯示(推薦)
- 下載URL中的當前位置的所有文件
# 場景: 我需要下載文件服務器某一路徑下的全部文件,但是不需要保存主頁“index.html”
wget -r -np -nd -R html,tmp https://www.cnblogs.com/cure/p/
或者:
wget -r -np -nd -A txt,zip,png[...] https://www.cnblogs.com/cure/p/
# 參數介紹:
# -r 遞歸下載(最好跟上np參數,不然會下載整個網站的數據及關聯網站數據)
# -np 不追溯到父級(表示只訪問當前位置)
# -nd 不創建文件夾
# -R 忽略/拒絕下載的格式(wget下載會默認下載主頁“index.html”,拒絕下載html格式時,會保存為html.tmp文件)
# -A 指定下載的格式(只下載指定格式的文件,這樣也不會下載主頁“index.html”)
參考: