Jak pobrać plik ze strony internetowej przez terminal?

305

Załóżmy, że mamy pełny adres URL pożądanego pliku, np

http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz

Chciałbym przejść bez instalowania nowego oprogramowania. Czy to możliwe?

Komenda

 cp  'http://example.com/directory/4?action=AttachFile&do=get&target=file.tgz' hooray

nie działa;)

0x6B6F77616C74
źródło
6
wgetjest twoim przyjacielem tutaj :)
powoduje
10
wgetjest być może najprostszym sposobem, ale możesz także użyć curl. Przeczytaj to
kochany
16
Użyj wget -O hooray "http://domain.com/directory/4?action=AttachFile&do=get&target=file.tgz". Możesz dodać -copcję wznowienia pobierania, jeśli połączenie zostało utracone podczas pobierania pliku.
Sergey
„hooray” rozbił mnie LOL
Chris Loughnane

Odpowiedzi:

396

Otwórz terminal i wpisz

wget "http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz" 

aby pobrać plik do bieżącego katalogu.

wget  -P /home/omio/Desktop/ "http://thecanadiantestbox.x10.mx/CC.zip"

pobierze plik do /home/omio/Desktop

wget  -O /home/omio/Desktop/NewFileName "http://thecanadiantestbox.x10.mx/CC.zip"

pobierz plik /home/omio/Desktopi nadaj mu swoje NewFileNameimię.

devav2
źródło
1
Pokonaj mnie do sedna. Dang. Ale tak to jest wget [whatever web address]. Jeśli chcesz wybrać lokalizację, wpisz cd [local location on your computer.] PRZYKŁAD: cd /home/omio/Desktop/ | wget http://thecanadiantestbox.x10.mx/CC.zip
Omio
4
@Omio Nie ma potrzeby uruchamiania cd. Możesz po prostu określić plik wyjściowy za pomocą -Oopcji. Na przykład:wget -O /home/omio/Desktop/file.tgz "http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz"
Sergey
1
Twoje przykłady nie będą działać. MUSISZ używać cudzysłowów, gdy URL zawiera znaki ampersands.
Sergey
@ Sergey Dzięki za wyjaśnienie. Nie musiałem jeszcze używać wget, ale będę musiał w przyszłości.
Omio
? i & są interpretowane przez twoją powłokę. Musisz to zacytować lub uciec. Ogólnie rzecz biorąc, masz skrót, aby wkleić cytowaną lub zmienioną sekwencję wersję ciągu do schowka w terminalu. Zachowaj ostrożność podczas wklejania rzeczy w terminalu.
alecail
27

możesz to zrobić za pomocą curl.

curl -O http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz

Opcja -O zapisuje plik o tej samej nazwie co w adresie URL, zamiast zrzucić dane wyjściowe na standardowe wyjście

Po więcej informacji

rɑːdʒɑ
źródło
Nigdy nie pamiętam, czy to zero, czy O
Alexander Mills
-O jest literą alfabetu i musi być dużą literą, w przeciwnym razie zostanie wygenerowany dziennik
Kareem Elsayed
20

Używam axeli wgetdo pobierania z terminala, axel jest akceleratorem pobierania

składnia

axel

Zainstaluj za pośrednictwem centrum oprogramowania

axel www.example.com/example.zip

wget

wget -c www.example.com/example.zip

więcej szczegółów typu man axel, man wgetw terminalu

Tachyony
źródło
6
czym się axelróżni wget?
heinrich5991
3
@ heinrich5991 wget jest bardziej zaawansowany niż axel!
Pranit Bauva,
9

Aby dodać więcej smaku temu pytaniu, polecam również przyjrzeć się temu:

history -d $((HISTCMD-1)) && echo '[PASSWORD]' | sudo -S shutdown now

Możesz użyć tego do zamknięcia komputera po wgetkomendzie za pomocą ;być może lub w bashpliku skryptu.

Oznaczałoby to, że nie musisz czuwać w nocy i monitorować, dopóki pobieranie nie zostanie (nie) pomyślnie uruchomione.

Przeczytaj również tę odpowiedź

drodzy
źródło
5

brak wzmianki o Aria2 to tylko szkoda, więc powiedziawszy to, sprawdź Aria2. https://aria2.github.io/

Zainstaluj go, wpisując terminal:

sudo apt install aria2

Następnie wpisz to, aby pobrać plik:

aria2c http://example.com/directory/4?action=AttachFile&do=get&target=file.tgz

Więcej pomocy można znaleźć aria2na manstronie.

Michael Tunnell
źródło
2

Zrobiłem te kroki od Oh-my-zsh,

brew install wget
wget https://github.com/sencha-extjs-examples/QuickStart/archive/master.zip
Do Nhu Vy
źródło