Próbuję użyć wget
pobrać plik pod inną nazwą lokalnego i pobierać tylko wtedy, gdy plik na serwerze jest nowsza.wget :: zmieniać nazwy pobranych plików, a jedynie pobranie nowszych
Co Myślałem, że mogę zrobić, to skorzystać z opcji wget
-O
tak aby móc wybrać nazwę pobranego pliku, na przykład:
wget http://example.com/weird-name -O local-name
i połączyć to z opcją -N
to nie pobiera niczego, chyba że znacznik czasu jest nowszy na serwerze. Z powodów wyjaśnionych w komentarzach poniżej, wget
odmawia połączyć obie flagi:
WARNING: timestamping does nothing in combination with -O. See the manual
for details.
jakieś pomysły na zwięzłych obejść?
Jaki jest twój cel? man wget wyjaśnia, dlaczego nie ma sensu mieszać -N z -O, ponieważ: -O nie ma oznaczać po prostu "użyj pliku nazwy zamiast tego w URL;" jest raczej analogiczny do przekierowania powłoki. W skrócie, twój plik wyjściowy zawsze będzie nowszy niż na serwerze i nic nie będzie nigdy ściągnięte. –
Przypuszczam, że rzeczywiste pytanie brzmi "jaki jest idiomatyczny sposób wget/bash, aby zmienić nazwę pobranych plików ** i ** tylko pobrać je, jeśli są nowsze na serwerze" - przeformułowałem pytanie, aby to wyjaśnić. –
@ecelis jeśli dostaję ciebie i co 'man wget' mówi poprawnie, oznacza to, że plik' -O' jest zawsze zapisywany/skracany od razu po uruchomieniu 'wget', więc jego znacznik czasu jest zawsze TERAZ, w którym to przypadku pobieranie nigdy nie jest uruchamiane. Dobrze? –