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;)


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ę.


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


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


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ź


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.


2

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

brew install wget
wget https://github.com/sencha-extjs-examples/QuickStart/archive/master.zip
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.