
나는에있는 모든 파일을 얻을 수 있습니다배쉬 패치 사이트순서대로 다운로드하여:
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