จะระบุตำแหน่งด้วย wget ได้อย่างไร?


695

ฉันต้องการไฟล์ที่จะดาวน์โหลดไปยัง / tmp / cron_test / รหัส wget ของฉันคือ

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

ดังนั้นมีพารามิเตอร์บางอย่างเพื่อระบุไดเรกทอรีหรือไม่


1
ใกล้เคียงที่ใช้ระบบปฏิบัติการยูนิกซ์ SE: ดาวน์โหลดใช้ wget ไปยังไดเรกทอรีที่แตกต่างกว่าไดเรกทอรีปัจจุบัน
kenorb

คำตอบ:


955

จากหน้าคู่มือ:

-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).

ดังนั้นคุณต้องเพิ่ม-P /tmp/cron_test/(แบบสั้น) หรือ--directory-prefix=/tmp/cron_test/(แบบยาว) ในคำสั่งของคุณ นอกจากนี้โปรดทราบว่าหากไม่มีไดเรกทอรีมันจะถูกสร้างขึ้น


5
-P / tmp / cron_test / ไม่ทำงาน แต่การลบ / เช่น -P tmp / cron_test / ทำงานและยังสร้างไดเรกทอรีที่ไม่มีอยู่
Kangarooo

7
จิงโจ้มันอาจไม่ทำงานเพราะคุณไม่มี / tmp / cron_test / ในระบบของคุณ: P
Sameer Alibhai

41
คำอธิบายของคู่มือทำให้ตัวเลือกนี้ยากต่อการค้นหา ฉันไม่คิดว่าสถานที่ที่ฉันต้องการบันทึกบางสิ่งเป็น 'คำนำหน้าไดเรกทอรี' ขอบคุณสำหรับการแบ่งปัน!
เลนซามูเอลแมคลีนผู้อาวุโส

7
นอกจากนี้คุณสามารถลบโฟลเดอร์รูทผ่าน--no-host-directoriesหรือ-nHตามserverfault.com/questions/354792//
Alien Life Form

- P ถูกละเว้นหากใช้ไฟล์อินพุตด้วย -i แนวคิดใด ๆ
Jan Viehweger

412

-O เป็นตัวเลือกในการระบุเส้นทางของไฟล์ที่คุณต้องการดาวน์โหลด

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

-P เป็นคำนำหน้าซึ่งจะดาวน์โหลดไฟล์ในไดเรกทอรี

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

8
ฉันจะเพิ่มเครื่องหมายสแลชเพื่อให้/path/to/folder/มี
Louis Maddox

36
โหวตขึ้นเพื่อระบุ-Oว่าฉันไม่ต้องการอะไร แต่ทำให้ฉันรู้สึกมั่นใจมากขึ้นว่า-Pเป็นสิ่งที่ฉันต้องการ
WORMSS

@louisMaddox ต่อ man pages บนเครื่องของฉัน, คำนำหน้าเริ่มต้นคือ "." (เช่นไดเรกทอรีปัจจุบัน) การเพิ่มเครื่องหมายสแลชต่อท้าย "คำนำหน้าไดเรกทอรี" จะทำให้เกิดข้อผิดพลาดสแลชสองครั้ง (เช่นของฉัน / รายการโปรด / dir / คำนำหน้า //) นอกจากนี้เมื่อพิจารณาความหมาย "คำนำหน้าไดเรกทอรี" จะไม่ต้องการ เฉือน
ทิโมธี LJ Stewart

2
@ TimothyL.J.Stewart ไม่มีข้อผิดพลาดทับสองครั้ง
har-wradim

หมายเหตุ: -Oแทนที่-Pดังนั้นคุณไม่สามารถระบุเพียงไดเรกทอรีออก (คิดdirname และเพียงแค่ชื่อไฟล์เอาท์พุท (คิดว่าbasename) สำหรับการใช้งานนี้เพียงแค่-Oระบุเส้นทางไฟล์แบบเต็ม
murlakatamenka

7

ตรวจสอบให้แน่ใจว่าคุณมี URL ที่ถูกต้องสำหรับทุกสิ่งที่คุณกำลังดาวน์โหลด ก่อนอื่น URL ที่มีอักขระเช่น?นี้จะไม่สามารถวิเคราะห์และแก้ไขได้ สิ่งนี้จะทำให้บรรทัด cmd สับสนและยอมรับอักขระใด ๆ ที่ไม่ได้รับการแก้ไขในชื่อ URL ต้นทางเป็นชื่อไฟล์ที่คุณกำลังดาวน์โหลด

ตัวอย่างเช่น:

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

?source=typ_redirectจะดาวน์โหลดลงในไฟล์ชื่อ

อย่างที่คุณเห็นการรู้สิ่งหนึ่งหรือสองเกี่ยวกับ URL ช่วยให้เข้าใจwgetได้

ฉันกำลังบูทจากดิสก์ hirens และมี Linux 2.6.1 เป็นทรัพยากรเท่านั้น (การนำเข้าระบบปฏิบัติการไม่พร้อมใช้งาน) ไวยากรณ์ที่ถูกต้องซึ่งแก้ไขปัญหาของฉันในการดาวน์โหลด ISO ลงในฮาร์ดไดรฟ์ทางกายภาพคือ:

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

หนึ่งสามารถคิด URL ที่ถูกต้องโดยการค้นหาสิ่งที่จุดwgetดาวน์โหลดลงในไฟล์ชื่อindex.html(ไฟล์เริ่มต้น) และมีขนาดที่ถูกต้อง / คุณลักษณะอื่น ๆ ของไฟล์ที่คุณต้องการแสดงโดยคำสั่งต่อไปนี้:

wget "(source url)"

เมื่อ URL และไฟล์ต้นฉบับนั้นถูกต้องและกำลังดาวน์โหลดindex.htmlคุณสามารถหยุดการดาวน์โหลด ( ctrl+ z) และเปลี่ยนไฟล์เอาต์พุตโดยใช้:

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

หลังจาก URL แหล่งที่มา

ในกรณีของฉันผลลัพธ์นี้ในการดาวน์โหลด ISO และเก็บไว้เป็นไฟล์ไบนารีภายใต้isofile.isoซึ่งหวังว่าจะเมาท์


2

"-P" เป็นตัวเลือกที่ถูกต้องโปรดอ่านข้อมูลที่เกี่ยวข้องเพิ่มเติมได้ที่:

wget -nd -np -P / dest / dir --recursive http: // url / dir1 / dir2

ตัวอย่างที่เกี่ยวข้องจากหน้าคนเพื่อความสะดวก:

   -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

ผู้ชาย wget: ไฟล์ -O - เอาท์พุทเอกสาร = ไฟล์

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

1
มันไม่ใช่คำตอบเพราะตัวเลือก -o ใส่ไฟล์ dounloaded ในไฟล์ที่ระบุ แต่คำถามคือ "วิธีใส่ไฟล์ในโฟลเดอร์" และนี่คือคำตอบที่ซ้ำกันอยู่
Anton Gorbunov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.