Curl komutuyla dosyayı belirli bir klasöre kaydet


182

Bir kabuk komut dosyasında, bir URL'den bir dosya indirmek ve belirli bir klasöre kaydetmek istiyorum. Dosyaları curlkomutla belirli bir klasöre indirmek için kullanmam gereken belirli CLI bayrağı nedir veya bu sonucu başka nasıl alabilirim?


Görünüşe göre bash programlama programlanıyor ...
rjurney

Yanıtlar:


282

Kıvrılmak için bir yol verebileceğinizi düşünmüyorum, ancak CD'ye konum, indirme ve CD geri dönebilirsiniz.

cd target/path && { curl -O URL ; cd -; }

Veya alt kabuk kullanarak.

(cd target/path && curl -O URL)

Her iki yol da yalnızca yol varsa indirilir. -Ouzak dosya adını tutar. İndirme işleminden sonra orijinal konumuna geri dönecektir.

Dosya adını açıkça ayarlamanız gerekiyorsa, küçük bir -oseçenek kullanabilirsiniz :

curl -o target/path/filename URL

2
Bu komut var: curl -LOk basename /packages" github.com/ziyaddin/xampp/archive/master.zip ". Ancak yanlış dosya adı yazıyor ->basename /packages
Ziyaddin Sadigov

10
Ayrıca, bir alt kabuk da kullanabilirsiniz:(cd target/path; curl -O URL)
Ehtesh Choudhury

9
İkisi arasındaki fark nedir? İlk cd bir dizine girer ve dosyayı indirir, sonra CD'yi çıkarır. İkincisi geçerli dizinde kalır ve dosyayı belirtilen konuma kıvırır. İkincisi daha basit görünüyor.
Henry Zhu

9
@HenryZhu İlkinde dosya adı sunucudaki dosyanın adından türetilir. İkincisinde, indirdiğiniz içeriği sağladığınız bir adla yeniden adlandırıyorsunuz.
turtlemonvh

4
Gerçekten bir dizin belirtmek için bir seçenek istiyorum, ancak sunucunun dosya adını kullanın. Kullanmak cdşu anda en iyi seçenek gibi görünüyor, ancak biraz yetersiz görünüyor.
StockB

4

curlbunun için bir seçenek yoktur (dosya adını da belirtmeden), ancak wget. Dizin göreli veya mutlak olabilir. Ayrıca, dizin yoksa otomatik olarak oluşturulur.

wget -P relative/dir "$url"

wget -P /absolute/dir "$url"
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.