Làm thế nào để xác định vị trí với wget?


694

Tôi cần các tệp để được tải xuống / tmp / cron_test /. Mã wget của tôi là

wget --random-wait -r -p -nd -e robots=off -A".pdf" -U mozilla http://math.stanford.edu/undergrad/

Vì vậy, có một số tham số để chỉ định thư mục?


Câu trả lời:


955

Từ trang hướng dẫn:

-P prefix
--directory-prefix=prefix
           Set directory prefix to prefix.  The directory prefix is the
           directory where all other files and sub-directories will be
           saved to, i.e. the top of the retrieval tree.  The default
           is . (the current directory).

Vì vậy, bạn cần thêm -P /tmp/cron_test/(dạng ngắn) hoặc --directory-prefix=/tmp/cron_test/(dạng dài) vào lệnh của bạn. Cũng lưu ý rằng nếu thư mục không tồn tại, nó sẽ được tạo.


5
-P / tmp / cron_test / doesnt hoạt động nhưng loại bỏ / like -P tmp / cron_test / hoạt động và thậm chí tạo thư mục không tồn tại.
Kangarooo

7
Kangaroo có thể không hoạt động vì bạn không có / tmp / cron_test / trên hệ thống của bạn: P
Sameer Alibhai

41
Mô tả của hướng dẫn làm cho tùy chọn này khó tìm kiếm. Tôi không nghĩ về vị trí mà tôi muốn lưu thứ gì đó dưới dạng 'tiền tố thư mục'. Cám ơn vì đã chia sẻ!
Iain Samuel McLean Elder

7
Ngoài ra, bạn có thể xóa thư mục gốc thông qua --no-host-directorieshoặc -nHtheo serverfault.com/questions3534792/
Biểu mẫu cuộc sống ngoài hành tinh

-P bị bỏ qua nếu sử dụng tệp đầu vào với -i có ý tưởng nào không?
Jan Viehweger

409

-O là tùy chọn chỉ định đường dẫn của tệp bạn muốn tải xuống.

wget <file.ext> -O /path/to/folder/file.ext

-P là tiền tố nơi nó sẽ tải tập tin trong thư mục

wget <file.ext> -P /path/to/folder

8
Tôi muốn thêm một dấu gạch chéo để làm cho nó /path/to/folder/ở đó
Louis Maddox

35
Up đã bình chọn cũng chỉ định -Onhững gì tôi không cần, nhưng làm tôi cảm thấy tự tin hơn đó -Plà những gì tôi cần.
CÔNG TRÌNH

@louisMaddox trên mỗi trang man trên máy của tôi, tiền tố mặc định là "." (vd gạch chéo.
Timothy LJ Stewart

2
@ TimothyL.J.Stewart Không có lỗi gạch chéo kép.
har-wradim

NB: -Oghi đè -P, vì vậy bạn không thể chỉ định thư mục đầu ra (nghĩ dirname chỉ xuất tên tệp (think basename). Để sử dụng, chỉ cần chỉ -Ođịnh đường dẫn tệp đầy đủ.
murlakatamenka

7

Hãy chắc chắn rằng bạn có URL chính xác cho bất cứ điều gì bạn đang tải xuống. Trước hết, các URL có ký tự như ?và không thể được phân tích cú pháp và giải quyết. Điều này sẽ gây nhầm lẫn dòng cmd và chấp nhận bất kỳ ký tự nào không được phân giải thành tên URL nguồn làm tên tệp bạn đang tải xuống.

Ví dụ:

wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect"

sẽ tải xuống một tập tin có tên , ?source=typ_redirect.

Như bạn có thể thấy, biết một hoặc hai điều về URL sẽ giúp hiểu wget.

Tôi đang khởi động từ đĩa hirens và chỉ có Linux 2.6.1 dưới dạng tài nguyên (nhập os không khả dụng). Cú pháp đúng đã giải quyết vấn đề của tôi khi tải ISO xuống ổ cứng vật lý là:

wget "(source url)" -O (directory where HD was mounted)/isofile.iso" 

Người ta có thể tìm ra URL chính xác bằng cách tìm điểm wgettải xuống vào một tệp có tên index.html(tệp mặc định) và có kích thước chính xác / các thuộc tính khác của tệp bạn cần được hiển thị bằng lệnh sau:

wget "(source url)"

Khi URL và tệp nguồn đó là chính xác và nó đang tải xuống index.html, bạn có thể dừng tải xuống ( ctrl+ z) và thay đổi tệp đầu ra bằng cách sử dụng:

-O "<specified download directory>/filename.extension"

sau url nguồn.

Trong trường hợp của tôi, điều này dẫn đến việc tải xuống một ISO và lưu trữ nó dưới dạng tệp nhị phân bên dưới isofile.iso, hy vọng sẽ gắn kết.


2

"-P" là tùy chọn phù hợp, vui lòng đọc tiếp để biết thêm thông tin liên quan:

wget -nd -np -P / mệnh / dir --recursive http: // url / dir1 / dir2

Đoạn trích có liên quan từ các trang man để thuận tiện:

   -P prefix
   --directory-prefix=prefix
       Set directory prefix to prefix.  The directory prefix is the directory where all other files and subdirectories will be saved to, i.e. the top of the retrieval tree.  The default is . (the current directory).

   -nd
   --no-directories
       Do not create a hierarchy of directories when retrieving recursively.  With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the
       filenames will get extensions .n).


   -np
   --no-parent
       Do not ever ascend to the parent directory when retrieving recursively.  This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.

1

man wget: -O tệp --output-document = file

wget "url" -O /tmp/cron_test/<file>

1
Đây không phải là một câu trả lời, tùy chọn becouse -o đặt tập tin đã tải vào tập tin được chỉ định. Nhưng câu hỏi là "Làm thế nào để đặt tập tin vào một thư mục". Và đây là câu trả lời tồn tại trùng lặp
Anton Gorbunov
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.