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.