Tải xuống các tệp và tạo cấu trúc tệp giống như nguồn


21

Tôi có một tệp cấu hình bao gồm danh sách các URI tôi muốn tải xuống. Ví dụ,

  http://xyz.abc.com/Dir1/Dir3/sds.exe
  http://xyz.abc.com/Dir2/Dir4/jhjs.exe
  http://xyz.abc.com/Dir1/itr.exe

Tôi muốn đọc tệp cấu hình và sao chép từng URL nhưng đồng thời tạo cấu trúc thư mục giống như trên máy chủ. Ví dụ: đối với dòng đầu tiên trong tệp cấu hình, tôi muốn tạo cấu trúc thư mục Dir1 / Dir3 trên máy cục bộ của mình (nếu nó không tồn tại) và sau đó sao chép sds.exe sang ... / Dir1 / Dir3 /

Tôi thấy rằng tôi có thể tải xuống tất cả các URL trong một tệp bằng cách sử dụng 'wget -i' nhưng làm cách nào tôi có thể tạo cấu trúc thư mục tương ứng với điều đó

Câu trả lời:


27

Từ man wget:

-x, --force-thư mục:

[...]

tạo một hệ thống phân cấp các thư mục, ngay cả khi chúng không được tạo khác. Ví dụ: wget -x http://fly.srk.fer.hr/robots.txt sẽ lưu tệp đã tải xuống fly.srk.fer.hr/robots.txt.


Cảm ơn lời khuyên của người đàn ông. Tôi nên làm quen với việc giúp mình.
NGambit

Chris: Nhưng có vẻ như nếu tôi có fly.srk.fer.hr/dir1/robots.txt thì wget -x tạo thư mục fly.srk.fer.hr và đặt tệp có tên dir1 / robot.txt trong đó. Những gì tôi cần nó là nó tạo ra ngay cả các thư mục con. tức là lưu robot.txt vào fly.srk.fer.hr/dir1/
NGambit

@NGambit Không thể tạo một tệp có tên dir1/robots.txttrên Unix.
Chris Xuống

Bạn đúng rồi. Tệp cấu hình tôi đang sử dụng có '\' thay vì '/' (vì nó được phân tích cú pháp từ một tệp dựa trên cửa sổ khác) trong các đường dẫn thư mục đang làm rối tung mọi thứ. Chỉ cần thay thế '\' bằng '/' và "wget ​​-x -i tên tệp" hoạt động như một

2
Lưu ý phụ: đôi khi bạn muốn bỏ qua các thư mục N đầu tiên trong URL, sau đó bạn thêm:--cut-dirs=N
tokland

16

Để có được cấu trúc mà bạn đang yêu cầu, tôi khuyên bạn nên sử dụng -nH cũng như -x.

Điều này sẽ loại bỏ tên máy chủ cũng như tạo cấu trúc thư mục dự kiến.

ví dụ

wget -x -nH http://xyz.abc.com/Dir1/Dir3/sds.exe

- 'Dir1/Dir3/sds.exe' saved [1234]

Từ trang người đàn ông:

-nH
--no-host-directories
   Disable generation of host-prefixed directories.  By default, invoking Wget with -r http://fly.srk.fer.hr/ will create a structure of directories beginning with fly.srk.fer.hr/.  This option disables such behavior.

-x
--force-directories
   ...create a hierarchy of directories, even if one would not have been created otherwise...
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.