Eğer zaten varsa curl dosyasının (komut satırı aracılığıyla) bir dosyanın üzerine yazacağını nasıl belirleyebilirim?


11

Bu sözdiziminde curl kullanıyorum:

curl -o myfile.jpg http://mysite.com/myfile.jpg

Bu komutu iki kez çalıştırırsam, iki dosya alırım:

myfile.jpg
myfile-1.jpg

Varsa dosyanın üzerine yazmasını istediğimi CURL'a nasıl söyleyebilirim?


6
Yeniden üretilemiyor: curlhangi sistemde hangi sürüm?
enzotib

Yanıtlar:


22

kullanın:

curl http://mysite.com/myfile.jpg > myfile.jpg

2
Önceden, noclobberseçeneğin etkin olmadığından emin olun ( set +o noclobber).
rozcietrzewiacz

0

Aynı sorunla karşılaştım ve sunucu tarafı ne olursa olsun aynı dosya adını tekrar kullanmak istiyorum, sizin durumunuzda dosya adını alabilirsiniz basename

➸ basename 'http://mysite.com/myfile.jpg'
myfile.jpg

o zaman bir yardımcı bash işlevi yazabilirsiniz:

➸ function download { name="$(basename $1)"; curl "$1" > "$name"; }
➸ download 'http://mysite.com/myfile.jpg'

ancak benim durumumda dosya adı URL'nin bir parçası bile değil, içerik düzenleme ile geliyor; curl ile komut satırı

$ curl -fSL -R -J -O 'http://some-site.com/getData.php?arg=1&arg2=...'

-fSLsunucu tarafı 302 Yeniden Yönlendirme veriyorsa , bu tanıtıcıları yoksayabilirsiniz ; -RSunucu tarafı zaman damgası için, -Jsunucu tarafında dikkate almak Content-Dispositionve -Obunun yerine, terminal üzerinde damping indirme davranışı geçmek için;

ancak yine de dosya adı varsa üzerine yazmayı reddetmektedir; Sunucu tarafı Last-Modifiedzaman damgası daha yeni ise üzerine yazmak istiyorum ;

bunu yapabilen bir wget çözümü ile sonuçlanır:

$ wget -NS --content-disposition 'http://some-site.com/getData.php?arg=1&arg2=...'

-Nsunucu tarafında tiemstamp kontrol ve sunucu tarafı yeni sürümü sahip olduğunda üzerine yazmak olduğunu; başlığı --content-dispositiondikkate almak Content-Disposition; ve wget'in varsayılan davranışı sunucu tarafından verilen dosya adına indirmektir.

senin durumunda, zaman damgasını umursamıyorsan, sadece

$ wget -O myfile.jpg http://mysite.com/myfile.jpg
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.