Używam curl w tej składni:
curl -o myfile.jpg http://mysite.com/myfile.jpg
Jeśli uruchomię to polecenie dwa razy, otrzymam dwa pliki:
myfile.jpg
myfile-1.jpg
Jak mogę powiedzieć CURL, że chcę zastąpić plik, jeśli istnieje?
Używam curl w tej składni:
curl -o myfile.jpg http://mysite.com/myfile.jpg
Jeśli uruchomię to polecenie dwa razy, otrzymam dwa pliki:
myfile.jpg
myfile-1.jpg
Jak mogę powiedzieć CURL, że chcę zastąpić plik, jeśli istnieje?
Odpowiedzi:
Posługiwać się:
curl http://mysite.com/myfile.jpg > myfile.jpg
noclobber
włączonej opcji ( set +o noclobber
).
Napotkałem ten sam problem i chcę ponownie użyć tej samej nazwy pliku niezależnie od strony serwera, w twoim przypadku możesz uzyskać nazwę pliku według basename
➸ basename 'http://mysite.com/myfile.jpg'
myfile.jpg
możesz napisać funkcję bash pomocnika, taką jak:
➸ function download { name="$(basename $1)"; curl "$1" > "$name"; }
➸ download 'http://mysite.com/myfile.jpg'
ale w moim przypadku nazwa pliku nie jest nawet częścią adresu url, lecz zawiera dyspozycję zawartości; z curl wierszem poleceń jest
$ curl -fSL -R -J -O 'http://some-site.com/getData.php?arg=1&arg2=...'
możesz zignorować te -fSL
uchwyty, jeśli po stronie serwera nastąpi przekierowanie 302; -R
na stronie serwera znacznika czasu, -J
aby rozważyć stronie serwera Content-Disposition
, i -O
aby przejść do pobierania zachowania zamiast antydumpingowe na terminalu;
jednak nadal cierpi z powodu odmowy zastąpienia, jeśli nazwa pliku istnieje; Chcę go zastąpić, jeśli Last-Modified
znacznik czasu po stronie serwera jest nowszy;
kończy się rozwiązaniem wget, które potrafi to zrobić:
$ wget -NS --content-disposition 'http://some-site.com/getData.php?arg=1&arg2=...'
-N
jest sprawdzenie po stronie serwera tiemstamp i nadpisać tylko po stronie serwera ma nową wersję; --content-disposition
rozważa Content-Disposition
nagłówek; a domyślnym zachowaniem wget jest pobieranie, na nazwę pliku podaną po stronie serwera.
w twoim przypadku, jeśli nie obchodzi Cię znacznik czasu, to po prostu
$ wget -O myfile.jpg http://mysite.com/myfile.jpg
curl
wersja w którym systemie?