นี่คือตัวอย่างที่ง่ายที่สุดที่ใช้ wget:
wget http://www.example.com/images/misc/pic.png
แต่วิธีการดาวน์โหลด wget ข้ามถ้าpic.pngมีอยู่แล้ว?
นี่คือตัวอย่างที่ง่ายที่สุดที่ใช้ wget:
wget http://www.example.com/images/misc/pic.png
แต่วิธีการดาวน์โหลด wget ข้ามถ้าpic.pngมีอยู่แล้ว?
คำตอบ:
ลองพารามิเตอร์ต่อไปนี้:
-nc,--no-clobber: ข้ามการดาวน์โหลดที่จะดาวน์โหลดไปยังไฟล์ที่มีอยู่
ตัวอย่างการใช้งาน:
wget -nc http://example.com/pic.png
[ ! -e "$(basename $URL)" ] && wget $URL
--recursiveตัวเลือก
-nc, --no-clobberตัวเลือกไม่ได้เป็นทางออกที่ดีที่สุดเป็นไฟล์ใหม่จะไม่ถูกดาวน์โหลด หนึ่งควรใช้-Nแทนซึ่งจะดาวน์โหลดและเขียนทับไฟล์เฉพาะในกรณีที่เซิร์ฟเวอร์มีรุ่นที่ใหม่กว่าดังนั้นคำตอบที่ถูกต้องคือ:
wget -N http://www.example.com/images/misc/pic.png
จากนั้นวิ่ง Wget กับ -N มีหรือไม่มี
-rหรือ-pการตัดสินใจที่เป็นไปได้หรือไม่ที่จะดาวน์โหลดสำเนาของไฟล์ใหม่ขึ้นอยู่กับการประทับเวลาท้องถิ่นและระยะไกลและขนาดของไฟล์ อาจจะไม่ได้ระบุไว้ในเวลาเดียวกันเป็น-nc-N
-N,--timestamping: เปิดการประทับเวลา
-Nอาจล้มเหลวและ wget จะทำการดาวน์โหลดซ้ำเสมอ ดังนั้นบางครั้งก็-ncเป็นทางออกที่ดีกว่า
wgetจะบ่นLast-modified header missing; นี่เป็นสถานการณ์ที่สรุปไว้อย่างแน่นอน
เมื่อใช้ Wget ด้วย-rหรือ-pแต่ไม่-N, -ndหรือ-ncอีกครั้งดาวน์โหลดไฟล์จะส่งผลในสำเนาใหม่เพียงเขียนทับเก่า
ดังนั้นการเพิ่ม-ncจะป้องกันพฤติกรรมนี้แทนที่จะทำให้เวอร์ชันดั้งเดิมถูกเก็บรักษาไว้และการทำสำเนาที่ใหม่กว่าบนเซิร์ฟเวอร์จะถูกละเว้น
คำตอบที่ผมกำลังมองหาที่https://unix.stackexchange.com/a/9557/114862
การใช้
-cแฟล็กเมื่อไฟล์โลคัลมีขนาดใหญ่กว่าหรือเท่ากับรุ่นของเซิร์ฟเวอร์จะหลีกเลี่ยงการดาวน์โหลดซ้ำ
wget -i filelist.txt -cจะทำการดาวน์โหลดรายการไฟล์ที่ล้มเหลวต่อ
-ncไม่ป้องกันการส่งคำขอ HTTP และการดาวน์โหลดไฟล์ในภายหลัง มันไม่ได้ทำอะไรหลังจากดาวน์โหลดไฟล์หากไฟล์นั้นได้รับการดึงข้อมูลเรียบร้อยแล้ว มีวิธีป้องกันการร้องขอ HTTP หรือไม่หากไฟล์มีอยู่แล้ว? stackoverflow.com/questions/33203898/…