
我可以取得所有文件bash 補丁站點按順序下載它們:
SEQ=$(seq -f "%03g" 1 30)
for i in $SEQ; do
wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i;
done
但接下來我必須知道最大數量。
是否有可能只獲取清單並提取所有補丁檔案以供下載?
答案1
您可以使用wget
遞迴下載:
wget -nc -nd -nH -np -r -R '*.*' http://ftp.gnu.org/gnu/bash/bash-4.3-patches/
解釋:
-nc
:no-clobber(不覆蓋現有文件),可能沒有必要。-nd
:不要建立目錄層次結構。-nH
:不要根據主機名稱建立目錄。或者您會發現所有內容都下載到名為 的目錄中ftp.gnu.org
。-np
:永遠不要提升到父目錄。-r
:遞歸下載。-R '*.*'
:拒絕.
檔案名稱中帶有 a 的所有內容(跳過諸如此類的內容index.html
)。也可以使用接受清單。文件已下載,但被丟棄。
答案2
for i in $(seq -f "%03g" 1 999); do
wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i
if [[ $? -ne "0" ]]; then
MAX=$(expr $i - 1)
break;
fi
done
echo $MAX files downloaded