Bir dosyaya Curl çıktısı nasıl yakalanır?


421

Bu biçimde bir sürü URL içeren bir metin belgesi var:

URL = "sitehere.com"

Ne yapmak istiyorum çalıştırmak curl -K myfile.txtve Curl döndürür yanıt çıktısını bir dosyaya almaktır.

Bunu nasıl yapabilirim?


23
curl http://{one,two}.example.com -o "file_#1.txt" curl.haxx.se/docs/manpage.html
onmyway133

Yanıtlar:


609
curl -K myconfig.txt -o output.txt 

Belirttiğiniz dosyada alınan ilk çıktıyı yazar (eski bir dosya varsa üzerine yazar).

curl -K myconfig.txt >> output.txt

Aldığınız tüm çıktıları belirtilen dosyaya ekler.

Not: -K isteğe bağlıdır.


1
Üzgünüm belki açıklığa kavuşturmak gerekiyor - tüm URL'leri ile ilgili biçiminde doc myfile.txt denir, bu yüzden curl -K myfile.txt yapmak ve her biri olsa çalışır ama herhangi bir dosyaya çıktı almazsınız.
Tony

22
Yönlendirmelerimi komut satırlarım için kullanıyorum:curl url > destfile.x
wasatchwizard

1
Bunlardan herhangi birini yaptığımda çıktı hala dosyada değil terminalde görüntüleniyor
kris

5
@kris muhtemelen url'de bir ve işareti var. url'yi çift tırnak içine alın ve deneyin
jglouie

-K olmadan çalışır. Bununla beraber, "URL belirtilmedi."
Arya Pourtabatabaie

163

Tek bir dosya için URL yolunun son bölümünü dosya adı olarak kullanmak -Oyerine -o filenamekullanabilirsiniz. Misal:

curl http://example.com/folder/big-file.iso -O

sonuçları geçerli klasöre big-file.iso adlı yeni bir dosyaya kaydeder . Bu şekilde, wget'e benzer şekilde çalışır, ancak wget kullanılırken kullanılamayan diğer kıvrılma seçeneklerini belirtmenize olanak tanır .


1
birden fazla dosya için --remote-name-all unix.stackexchange.com/a/265819/171025
qwr

28

Bir dosyaya kıvrılma çıktısı almak için birkaç seçenek vardır

 # saves it to myfile.txt
curl http://www.example.com/data.txt -o myfile.txt

# The #1 will get substituted with the url, so the filename contains the url
curl http://www.example.com/data.txt -o "file_#1.txt" 

# saves to data.txt, the filename extracted from the URL
curl http://www.example.com/data.txt -O 

# saves to filename determined by the Content-Disposition header sent by the server.
curl http://www.example.com/data.txt -O -J 

6

CURL çıktısını bir dosyaya çıktılamak yerine panoya kopyalamak isteyenler için , cURL komutundan sonra pbcopydikey kanalı kullanarak kullanabilirsiniz |.

Örnek: curl https://www.google.com/robots.txt | pbcopy. Bu, verilen URL'deki tüm içeriği panonuza kopyalar.


pbcopy yalnızca MacOS'ta kullanılabilir. Ancak Linuxxclip için yerinde kullanılabilir bu soruya bakın . Ancak çoğu durumda curl http://example.com -o example_com.html & cat example_com.html | pbcopy panonuzu yanlışlıkla temizlerseniz tekrar kıvırmanıza gerek kalmaz.
lacostenycoder

Ayrıca, yükün boyutundan emin değilseniz, dikkatli bir şekilde kullanılmalıdır. Örneğin, bunu bir metin düzenleyicisine yapıştırmak istemezsiniz, ancak vim'de açmak sorun olmaz. curl http://www.textfiles.com/etext/FICTION/fielding-history-243.txt | pbcopybelki bunu denemeyin!
lacostenycoder

0

Çıktınızı masaüstünüze depolamak istiyorsanız, git bash'da post komutunu kullanarak aşağıdaki komutu izleyin.

curl https: // localhost: 8080 --eklif POST - başlık "İçerik-Türü: uygulama / json" -o "C: \ Desktop \ test.txt"


-1

Biraz geç, ama OP gibi bir şey arıyordum:

curl -K myfile.txt --trace-asci output.txt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.