บอกให้ wget ทำมิร์เรอร์ส่วนต่างๆของพา ธ ของ URI ไปยังโฟลเดอร์


0

ฉันมีรายการของ URIs ในไฟล์uris.txt:

http://example.com/file1.pdf
http://example.com/file2.pdf
http://example.com/Folder/file3.pdf
http://example.com/Folder/Subfolder/file4.pdf

โครงสร้างไดเรกทอรีผลลัพธ์บน HDD ของฉันน่าจะเป็นดังนี้:

|
|-file1.pdf
|-file2.pdf
|-Folder
  |-file3.pdf
  |-Subfolder
    |-file4.pdf

คำสั่งปัจจุบันของฉันคือ: wget -i uris.txt -P downloads

โชคไม่ดีที่ watt แบนไดเรกทอรีทั้งหมดเช่นชื่อไฟล์จะถูกกำหนดโดยการเชื่อมโยงไดเรกทอรีฐาน (กำหนดโดย -P ในบรรทัดคำสั่ง) และส่วนสุดท้ายของเส้นทางของ URI

การบำรุงรักษาโครงสร้างไดเรกทอรีที่เซิร์ฟเวอร์ทำหน้าที่เป็นไปได้แม้ว่าจะอยู่ในโหมดเรียกซ้ำเท่านั้นซึ่งจะทำงานเฉพาะใน HTML และ CSS เท่านั้นซึ่งต่างจากรายการ URIs ที่กำหนด


คุณสามารถใช้ regex-fu บางอย่างเพื่อแปลงรายการไฟล์เป็นบรรทัดคำสั่ง wget ที่เฉพาะเจาะจงมากขึ้นจากนั้นเรียกใช้ไฟล์
Neil Smithline

@NeilSmithline ฉันสร้างรายการโดยใช้สคริปต์ Node.js ที่ฉันเขียน ฉันหวังว่าจะมีฟังก์ชั่นในตัวพร้อมใช้งานบางอย่างรวมถึงการจัดการกับอักขระพิเศษที่ไม่ได้รับอนุญาต / ต้องการในชื่อไดเรกทอรี
ComFreek

คำตอบ:


1

คุณสามารถรับสิ่งนี้ได้ด้วยตัวเลือกพิเศษ -xหรือ--force-directoriesและ-nHหรือ--no-host-directoriesเพื่อหลีกเลี่ยงไดเรกทอรีบนสุดของ example.com


0

การอ่านที่แนะนำที่จะให้คำตอบในวิธีที่พิสูจน์ในอนาคต :

man wget

มองหา--no-host-directoriesและ--cut-dirs=number

- ไม่มีไดเรกทอรีโฮสต์
จะทำให้ wget ข้ามการสร้าง dir ชื่อ "example.com" เพื่อนำข้อมูลทั้งหมดมา

--cut-dirs = number
จะทำเช่นเดียวกันสำหรับnumbersubdirs นับจากด้านบน


ถูกต้องฉันหากฉันผิด แต่ตัวเลือกเหล่านี้ไม่ตรงข้ามคือลดจำนวนไดเรกทอรีหรือไม่ ตามจริงแล้วการเรียก wget ด้วยพารามิเตอร์ --no-host-directories --cut-dirs=10(10 เป็นค่าที่เลือกโดยพลการ) ทำให้ไม่มีความแตกต่างเมื่อเปรียบเทียบกับการเรียกใช้งานที่ไม่มีพวกเขา
ComFreek
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.