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ể?
6
A
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
Bạn đang sử dụng SVN | GIT, phải không? – sholsapp
Vâng, tôi có thể nhưng Msys không cung cấp truy cập SVN/Git, phải không? – FFox
Đâ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