ดาวน์โหลดไฟล์และสร้างโครงสร้างไฟล์เดียวกับแหล่งที่มา


21

ฉันมีไฟล์ปรับแต่งซึ่งประกอบด้วยรายการของ URIs ที่ฉันต้องการดาวน์โหลด ตัวอย่างเช่น,

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

ฉันต้องการอ่านไฟล์กำหนดค่าและคัดลอกแต่ละ URL แต่ในขณะเดียวกันก็สร้างโครงสร้างไดเรกทอรีเช่นเดียวกับบนโฮสต์ ตัวอย่างเช่นสำหรับบรรทัดแรกในไฟล์กำหนดค่าฉันต้องการสร้างโครงสร้างไดเรกทอรี Dir1 / Dir3 บนเครื่องของฉัน (ถ้าไม่มี) จากนั้นคัดลอก sds.exe ไปที่ ... / Dir1 / Dir3 /

ฉันพบว่าฉันสามารถดาวน์โหลด URL ทั้งหมดในไฟล์โดยใช้ 'wget -i' แต่ฉันจะสร้างโครงสร้างไดเรกทอรีที่สอดคล้องกับสิ่งนั้นได้อย่างไร

คำตอบ:


27

จากman wget:

-x, --force- ไดเรกทอรี:

[ ... ]

สร้างลำดับชั้นของไดเรกทอรีแม้ว่าจะไม่ถูกสร้างขึ้นมาเป็นอย่างอื่น เช่น wget -x http://fly.srk.fer.hr/robots.txtจะบันทึกไฟล์ที่ดาวน์โหลดไปยัง fly.srk.fer.hr/robots.txt


ขอบคุณสำหรับคำแนะนำของผู้ชาย ฉันควรทำความคุ้นเคยกับการช่วยเหลือตัวเอง
NGambit

Chris: แต่ดูเหมือนว่าถ้าฉันมี fly.srk.fer.hr/dir1/robots.txt จากนั้น wget -x สร้างไดเรกทอรี fly.srk.fer.hr และวางไฟล์ชื่อ dir1 / robots.txt ไว้ในนั้น สิ่งที่ฉันต้องการคือมันสร้างแม้กระทั่งไดเรกทอรีย่อย ie save robots.txt to fly.srk.fer.hr/dir1/
NGambit

@NGambit มันเป็นไปไม่ได้ที่จะสร้างไฟล์เดียวที่มีชื่อdir1/robots.txtใน Unix
Chris Down

คุณพูดถูก ไฟล์กำหนดค่าที่ฉันใช้มี '\' แทน '/' (เนื่องจากมีการแยกวิเคราะห์จากไฟล์ที่ใช้ windows อื่น) ในเส้นทางไดเรกทอรีซึ่งทำให้เกิดความสับสน เพิ่งแทนที่ '\' ด้วย '/' และ "wget ​​-x -i ชื่อไฟล์" ทำงานเหมือนมีเสน่ห์
NGambit

2
หมายเหตุด้าน: บางครั้งคุณต้องการที่จะข้ามโฟลเดอร์ N แรกใน URL จากนั้นคุณเพิ่ม:--cut-dirs=N
tokland

16

เพื่อให้ได้โครงสร้างที่คุณต้องการฉันขอแนะนำให้ใช้ -nH และ -x

สิ่งนี้จะลบชื่อโฮสต์รวมถึงสร้างโครงสร้างไดเรกทอรีที่ต้องการ

เช่น

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

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

จากหน้าคน:

-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...
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.