wget은 간단하게 특정 url에 있는 파일을 다운로드 할 수 있는 어플리케이션이죠.
Ubuntu server에는 기본적으로 설치가 되어있는 것 같구요(Windows 같은 경우는 설치하셔야 사용 가능합니다).
*참고: windows wget 다운로드 : http://gnuwin32.sourceforge.net/packages/wget.htm
사용 방법은 예를 들어서 설명드리면,
http://192.168.0.100/test/aaa.png
위와 같은 주소에 있는 이미지를 다운로드해서 현재 폴더에 저장시키고 싶을 때는
wget http://192.168.0.100/text/aaa.png
위와 같이 사용하시면 됩니다.
하지만 이번 포스팅에서 다루고자 하는 것은 여러 파일이 하나의 폴더에 있을 때 모두 다운로드 하는 것인데요.
이것도 예를 들어서,
http://192.168.0.100/images/0.png
http://192.168.0.100/images/1.png
http://192.168.0.100/images/2.png
http://192.168.0.100/images/3.png
....
http://192.168.0.100/images/100000.png
http://192.168.0.100/images/subFolder/0.png
http://192.168.0.100/images/subFolder/1.png
http://192.168.0.100/images/subFolder/2.png
.....
http://192.168.0.100/images/subFolder/9999.png
http://192.168.0.100/images/subFolder/10000.png
위와 같이 images 폴더에 많은 이미지가 저장되어 있고, 또 하위 폴더에 이미지가 많이 저장되어 있을 때
wget으로 모두 다운로드 하기 위해서는 다음과 같은 옵션을 주면 가능합니다.
wget에 recursive라는 옵션을 사용하시면 되는데, recursive의 뜻은 '반복되는' 이라는 뜻이네요. *참고: 네이버 영어사전
즉 우리가 wget으로 특정 파일이 아니라, 폴더 주소를 사용하면서 recursive 옵션을 주면,
하위폴더를 포함해서 존재하는 모든 파일을 다운로드 해주는 것이죠.
다음과 같이 말이죠.
wget -r http://192.168.0.100/images
-r은 --recursive를 줄인 것이구요. 기본적으로 wget에서는 5단계까지 하위폴더의 모든 파일을 다운로드 합니다.
depth을 더 들어가기 위해서는 -l(소문자 엘) 옵션을 사용하시면 된다고 하네요. l(엘)은 level을 뜻하는 것이구요.
인터넷에 더 찾아보니깐, -np라는 옵션도 같이 사용하는 것 같습니다.
-np라는 옵션은 no-parent를 줄여서 쓴 것으로, recursive 옵션을 주고 실행할 때 부모 디렉토리의 파일을 다운로드 하지 말라는 뜻인거 같아요.
정확하진 않아요 ㅠ
마지막으로 이미지와 텍스트가 포함된 폴더라고 가정하면
reject 옵션으로 이미지만 다운로드 할 수 있습니다.
위 빨간색 박스가 png와 txt 파일이 동시에 존재한다고 했을 때, 아래와 같이 reject 옵션을 줘서 png만 다운로드 할 수 있겠죠.
wget -r -np --reject "*.txt" http://192.168.0.100/images