OS X: เทียบเท่ากับ wget ของ Linux


499

ฉันจะทำ HTTP GET จากสคริปต์ Un * x shell บนระบบสต็อก OS X ได้อย่างไร (การติดตั้งซอฟต์แวร์ของบุคคลที่สามไม่ใช่ตัวเลือกเพราะสิ่งนี้จะต้องใช้กับระบบต่าง ๆ มากมายซึ่งฉันไม่สามารถควบคุมได้)

ตัวอย่างเช่นถ้าฉันเริ่มเซิร์ฟเวอร์ Mercurial ในพื้นที่ให้บริการ hg :

... $ hg serve 

จากนั้นจาก Linux ที่มีคำสั่งwgetฉันจะทำ wget:

... $  wget http://127.0.0.1:8000
--2010-12-31 22:18:25--  http://127.0.0.1:8000/
Connecting to 127.0.0.1:8000... connected.
HTTP request sent, awaiting response... 200 Script output follows
Length: unspecified [text/html]
Saving to: `index.html

และในเทอร์มินัลที่ฉันเปิดใช้คำสั่ง "hg บริการ"ฉันสามารถเห็นได้ว่า HTTP GET ทำตาม:

127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -

ดังนั้นบน Linux วิธีหนึ่งในการทำ HTTP GET จากเชลล์สคริปต์คือใช้wget (ถ้าคำสั่งนั้นติดตั้งแน่นอน)

มีวิธีอื่นในการทำสิ่งที่เทียบเท่ากับwget ? โดยเฉพาะอย่างยิ่งฉันกำลังมองหาสิ่งที่จะทำงานกับการติดตั้ง OS X หุ้น


2
นอกจากนี้ยังสะดวก: mikebeach.org/2012/09/29/how-to-install-wget-in-mac-os-x
emilyk

คำตอบ:


712

ฉันจะต้องพูด curl http://127.0.0.1:8000 -o outfile


27
นอกจากนี้wgetสามารถใช้ได้ผ่านทางทั้งMacPortsและตำรวจ
Brian Clapper

47
ฉันมาที่นี่จากการค้นหาโดย Google เกี่ยวกับวิธีรับ wget บน Mac ดังนั้นแม้จะมีข้อกำหนดของ OP เพื่อหลีกเลี่ยงการติดตั้งซอฟต์แวร์บุคคลที่สามฉันจะให้ลิงก์ไปยังคำแนะนำฉบับย่อที่ฉันพบเกี่ยวกับวิธีติดตั้ง wget โดยไม่ต้องใช้ MacPortsสำหรับอนาคต การอ้างอิง
Eirik H

32
มันยังมีอยู่ใน Homebrew
แดเนียลพูดว่า Reinstate Monica

2
ดูเหมือนจะไม่ติดตามต่อไป
ห่วง

14
สำหรับการดาวน์โหลดไฟล์คุณสามารถใช้-Oหรือ--remote-nameตั้งค่าสถานะเพื่อเปลี่ยนชื่อไฟล์ที่ดาวน์โหลดโดยอัตโนมัติ เช่นcurl -O http://somehost.org/file.zip
nimcap

463

brew install wget

Homebrewเป็นตัวจัดการแพ็คเกจสำหรับ OSX ที่คล้ายคลึงกับ yum, apt-get, choco, emerge, etc. โปรดทราบว่าคุณจะต้องติดตั้ง Xcode และเครื่องมือบรรทัดคำสั่งด้วย แทบทุกคนที่ใช้บรรทัดคำสั่งใน OSX จะต้องการติดตั้งสิ่งเหล่านี้ต่อไป

หากคุณไม่สามารถหรือไม่ต้องการใช้ homebrew คุณสามารถ:

ติดตั้ง wget ด้วยตนเอง:

curl -# "http://ftp.gnu.org/gnu/wget/wget-1.17.1.tar.xz" -o "wget.tar.xz"
tar xf wget.tar.xz
cd wget-1.17.1
./configure --with-ssl=openssl -with-libssl-prefix=/usr/local/ssl && make -j8 && make install

หรือใช้นามแฝงทุบตี:

function _wget() { curl "${1}" -o $(basename "${1}") ; };
alias wget='_wget'

11
คุณอาจใช้เวลาสักครู่อธิบาย homebrew แต่เป็นสิ่งสำคัญที่จะต้องมีwgetคำตอบที่เห็นได้จากมือใหม่ที่นี่เนื่องจากเจ้าของคนเดียวเท่านั้นที่ถูกลบและcurlเป็นทางเลือกแทนที่จะเป็นตัวอักษรที่เทียบเท่า
Chris Stratton

2
ขอบคุณสิ่งนี้มีประโยชน์สำหรับฉันในฐานะผู้ที่ติดตั้ง Brew แล้ว
enderland

4
@Michaelangelo และนั่นไม่ใช่หน้าที่ของคุณที่จะทำลายโพสต์ของผู้อื่น คุณไม่ควรแก้ไขคำตอบอื่น ๆ เพื่อสร้างคะแนนของคุณเอง - ไม่เหมาะสม ในความเป็นจริงการกระทำที่มีการหารือเกี่ยวกับ Meta: meta.stackoverflow.com/questions/315892/ …
Zizouz212

2
@EricHartford การลงคะแนนเสียงไม่สามารถแก้ปัญหาได้ มันให้ทางเลือกหนึ่งโดยไม่แสดงรายการตัวเลือกอื่นของวิธีการติดตั้ง wget ด้วยตนเอง
Michaelangel007

1
ฉันคิดว่าคุณมีจุดที่ดี และฉันจะแก้ไขคำตอบเพื่อรวมความคิดของคุณ
Eric Hartford

87

Curl มีโหมดที่เกือบเทียบเท่ากับค่าเริ่มต้น

curl -O <url>

มันใช้งานได้เหมือน

wget <url>

และหากต้องการคุณสามารถเพิ่มสิ่งนี้ลงใน. bashrc ของคุณ:

alias wget='curl -O'

มันเข้ากันไม่ได้ 100% แต่ใช้ได้กับการใช้งาน wget ทั่วไป (IMO)


2
คุณจะทำสิ่งนี้ซ้ำได้อย่างไร
Jasper

คุณสามารถใช้ bash เพื่อเพิ่มสิ่งนี้ลงในลูปแบบนี้: for i in `seq 1 <n>` do curl -O <url>;done;โดยที่ <n> คือจำนวนครั้งที่คุณต้องการทำซ้ำและ <url> คือ URL ที่จะดึง
Blairg23

1
บางครั้งคุณจะต้องเพิ่มการ-Lตั้งค่าสถานะเพื่อติดตามการเปลี่ยนเส้นทางตำแหน่ง คุณสามารถใช้curl -OL <url>เพื่อทำเช่นนั้น
Gustavo Straube

1
-Oนอกจากนี้ยังนำไปใช้กับการโต้แย้งต่อไปเพื่อที่จะดาวน์โหลด URL หลายรายการที่คุณต้องใช้สิ่งที่ต้องการหรือcurl -O "$url1" -O "$url2" printf %s\\n "$url1" "$url2"|xargs -n1 curl -O
nisetama

มันเป็นทิปที่ยอดเยี่ยมมาก ขอบคุณมาก!
cmcromance

42

1) กับประเภท mac ของคุณ

nano /usr/bin/wget

2) วางสิ่งต่อไปนี้ใน

#!/bin/bash
curl -L $1 -o $2

3) ปิดจากนั้นให้เรียกใช้งานได้

chmod 777 /usr/bin/wget

แค่นั้นแหละ.


ดีกว่านามแฝง
MK

3
เกือบถูกต้องแล้ว ฉันเชื่อว่าขั้นตอนเดียวควรเป็นvim /usr/bin/wget;) ฮ่าฮ่าล้อเล่น ขอบคุณสำหรับคำตอบ - สิ่งนี้ไม่เคยเกิดขึ้นกับฉันและด้วยเหตุผลบางอย่างฉันไม่รู้สึกเหมือนติดตั้งชง / fink / อะไรก็ตามดังนั้นรุ่งโรจน์สำหรับคำตอบแบบพกพาง่าย
Kasapo

3
-Lเป็นสิ่งสำคัญสำหรับการจัดการ301การตอบสนองhttp wget จัดการกับพวกเขาตามค่าเริ่มต้น
Donn Lee

"curl -L resource.url / tar.tar.gz -O tar.tar.gz" ทำงานได้ดีขอบคุณสำหรับวิธีแก้ปัญหาที่สามารถใช้งานได้ แต่เพียงผู้เดียวในหมู่ผู้อื่นในหัวข้อนี้สำหรับกรณีการใช้งานของฉัน
Oleksii Kyslytsyn

sudo nano / usr / bin / wget
Vino


12

นี่คือ Mac OS X ที่เทียบเท่ากับ wget ของ Linux

สำหรับ Linux เช่น Ubuntu บนอินสแตนซ์ AWS ให้ใช้:

wget http://example.com/textfile.txt

บน Mac เช่นสำหรับการพัฒนาในท้องถิ่นให้ใช้สิ่งนี้:

curl http://example.com/textfile.txt -o textfile.txt

จำเป็นต้องใช้พารามิเตอร์ -o บน Mac เพื่อแสดงผลเป็นไฟล์แทนที่จะเป็นบนหน้าจอ ระบุชื่อเป้าหมายอื่นสำหรับเปลี่ยนชื่อไฟล์ที่ดาวน์โหลด

ใช้ตัวพิมพ์ใหญ่ -O สำหรับเปลี่ยนชื่อด้วย wget ตัวพิมพ์เล็ก -o จะระบุไฟล์เอาต์พุตสำหรับบันทึกการถ่ายโอน


5

คุณสามารถสร้าง wget บนเครื่อง mac หรือใช้ MacPorts เพื่อติดตั้งโดยตรง

sudo port install wget 

สิ่งนี้จะทำงานได้อย่างมีเสน่ห์และคุณสามารถอัปเดตเป็นเวอร์ชันล่าสุดได้ทันทีที่มี พอร์ตมีความเสถียรมากกว่าการชงถึงแม้ว่าจะมีสูตรและพอร์ตน้อยกว่ามาก

คุณสามารถติดตั้ง MacPorts ได้จากhttps://www.macports.org/install.phpคุณสามารถดาวน์โหลด.pkgไฟล์และติดตั้งได้


และคุณจะติดตั้งพอร์ตได้อย่างไร
Roy Lovejoy

5

แทนที่จะไปเทียบเท่าคุณสามารถลอง "ชงติดตั้ง wget" และใช้ wget

คุณต้องมีการติดตั้งชงใน mac ของคุณ


1
ไม่ต้องลงคะแนนเลย แต่นี่เป็นคำตอบของ Eric เมื่อวันที่ 13 มิ.ย. 13
MarkHu


2

ดาวน์โหลด Precompiled Mac Binary

สำหรับผู้ที่มองหาการติดตั้งอย่างรวดเร็วบน Mac ลองดูไบนารีที่คอมไพล์แล้วของ Quentin Stafford-Fraser ที่นี่ซึ่งมีมานานกว่าทศวรรษแล้ว:

https://statusq.org/archives/2008/07/30/1954/

MD5 สำหรับปี 2008 wget.zip: 24a35d499704eecedd09e0dd52175582
MD5 สำหรับปี 2005 wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb

ไม่มียี่ห้อ / ติดตั้ง / พอร์ต / ชง / ม้วนขยะ เพียงดาวน์โหลดติดตั้งและเรียกใช้ ทำงานร่วมกับ Mac OS X 10.3-10.12 +

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