Bagaimana cara menangkap output Curl ke file?


423

Saya memiliki dokumen teks yang berisi banyak URL dalam format ini:

URL = "sitehere.com"

Yang ingin saya lakukan adalah menjalankan curl -K myfile.txt, dan mendapatkan hasil dari respon yang dikembalikan Curl, ke dalam file.

Bagaimana saya bisa melakukan ini?


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

Jawaban:


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

Menulis keluaran pertama yang diterima dalam file yang Anda tentukan (menimpa jika ada yang lama).

curl -K myconfig.txt >> output.txt

Tambahkan semua output yang Anda terima ke file yang ditentukan.

Catatan: -K adalah opsional.


1
Maaf mungkin saya perlu mengklarifikasi - dokumen dengan semua URL saya dalam format tentang disebut myfile.txt jadi saya melakukan curl -K myfile.txt dan ini berjalan meskipun masing-masing tetapi saya tidak mendapatkan output ke file apa pun.
Tony

22
Saya menggunakan pengalihan untuk baris perintah saya:curl url > destfile.x
wasatchwizard

1
Ketika saya melakukan salah satu dari ini output masih menampilkan di terminal, bukan di file
kris

5
@ Kris Anda mungkin memiliki ampersand di url. masukkan url dalam tanda kutip ganda dan kemudian coba
jglouie

Ini bekerja tanpa -K. Dengan itu, saya mendapatkan "Tidak ada URL yang ditentukan."
Arya Pourtabatabaie

163

Untuk satu file, Anda dapat menggunakan -Oalih-alih -o filenamemenggunakan segmen terakhir dari jalur URL sebagai nama file. Contoh:

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

akan menyimpan hasilnya ke file baru bernama big-file.iso di folder saat ini. Dengan cara ini ia bekerja mirip dengan wget tetapi memungkinkan Anda untuk menentukan opsi ikal lain yang tidak tersedia saat menggunakan wget.


1
untuk banyak file gunakan --remote-name-all unix.stackexchange.com/a/265819/171025
qwr

28

Ada beberapa opsi untuk membuat keluaran ikal ke file

 # 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

Bagi Anda yang ingin menyalin output cURL di clipboard alih-alih menghasilkan ke file, Anda dapat menggunakan pbcopydengan menggunakan pipa |setelah perintah cURL.

Contoh: curl https://www.google.com/robots.txt | pbcopy. Ini akan menyalin semua konten dari URL yang diberikan ke clipboard Anda.


pbcopy hanya tersedia di MacOS. Namun xclipdapat digunakan di tempat itu untuk Linux melihat pertanyaan ini . Namun saya akan dalam banyak kasus lebih suka curl http://example.com -o example_com.html & cat example_com.html | pbcopy Jadi Anda tidak perlu meringkuk lagi jika Anda tidak sengaja menghapus clipboard Anda.
lacostenycoder

Ini juga harus digunakan dengan hati-hati jika Anda tidak yakin dengan ukuran payload. Misalnya Anda mungkin tidak ingin menempelkan ini ke editor teks, tetapi membukanya di vim tidak ada masalah. curl http://www.textfiles.com/etext/FICTION/fielding-history-243.txt | pbcopymungkin jangan coba ini!
lacostenycoder

0

Jika Anda ingin menyimpan output Anda di desktop Anda, ikuti perintah di bawah ini menggunakan perintah post di git bash. Ini bekerja untuk saya.

curl https: // localhost: 8080 --meminta POST --header "Tipe Konten: application / json" -o "C: \ Desktop \ test.txt"


-1

Agak terlambat, tapi saya pikir OP sedang mencari sesuatu seperti:

curl -K myfile.txt --trace-asci output.txt
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.