2010-08-02 28 views
6

Sau khi dành khoảng một giờ để tải xuống hầu như mọi gói Msys từ sourceforge, tôi tự hỏi liệu có cách nào thông minh hơn để làm điều này không. Có thể sử dụng wget cho mục đích này không?Làm thế nào để tải xuống tất cả các tệp từ một dự án Sourceforge cụ thể?

+0

Bạn đang sử dụng SVN | GIT, phải không? – sholsapp

+0

Vâng, tôi có thể nhưng Msys không cung cấp truy cập SVN/Git, phải không? – FFox

+0

Đây là câu hỏi SO cũ nhất mà tôi đã thấy không có câu trả lời nào – Assimilater

Trả lời

1

Tôi đã sử dụng kịch bản này thành công:

https://github.com/SpiritQuaddicted/sourceforge-file-download

Đối với chạy sử dụng của bạn:

sourceforge-file-downloader.sh msys 

Nó nên tải về tất cả các trang đầu tiên sau đó tìm các liên kết thực tế trong các trang và tải về các tập tin cuối cùng.

Từ các mô tả dự án:

Cho phép bạn tải về tất cả các tập tin một dự án SourceForge của. Tải xuống thư mục hiện tại vào một thư mục có tên như dự án. Vượt qua tên của dự án như là đối số đầu tiên, ví dụ như ./sourceforge-file-download.sh inkscape để tải về tất cả các http://sourceforge.net/projects/inkscape/files/

Chỉ trong trường hợp các repo bao giờ bị loại bỏ, tôi sẽ đăng nó ở đây vì nó đủ ngắn:

#!/bin/sh 

project=$1 
echo "Downloading $project's files" 

# download all the pages on which direct download links are 
# be nice, sleep a second 
wget -w 1 -np -m -A download http://sourceforge.net/projects/$project/files/ 

# extract those links 
grep -Rh direct-download sourceforge.net/ | grep -Eo '".*" ' | sed 's/"//g' > urllist 

# remove temporary files, unless you want to keep them for some reason 
rm -r sourceforge.net/ 

# download each of the extracted URLs, put into $projectname/ 
while read url; do wget --content-disposition -x -nH --cut-dirs=1 "${url}"; done < urllist 

rm urllist 
Các vấn đề liên quan