Jaka jest różnica między wget vs curl?

Jaka jest różnica między wget vs curl?
Często musimy pobierać pliki z serwerów zdalnych na nasz komputer lokalny. Na graficznym pulpicie możemy użyć przeglądarki GUI i kliknąć przycisk Pobierz. Jednak na terminalu musimy użyć narzędzi opracowanych dla terminalu.Podczas pobierania plików z terminalu często pojawiają się cztery narzędzia: Curl, Axel, WGET i ARIA2. Chociaż Axel i ARIA2 mogą nie być dobrze znani, większość użytkowników terminalu zna curl i wget.

W tym samouczku przyjrzymy się curl i wget, jak zacząć, a co najważniejsze, różnice między nimi.

Co to jest curl?

Curl to bezpłatne i open source narzędzie wiersza polecenia, które pozwala użytkownikom przesyłać dane z jednego zdalnego komputera do drugiego z minimalną interakcją użytkownika lub bez interakcji. Używanie loków jest powszechne w urządzeniach takich jak routery, drukarki, telefony, tablety, odtwarzacze multimedialne i inne.

Obsługuje pobieranie i przesyłanie przy użyciu protokołów, takich jak HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMB, Telnet, Pop3, Gopher i wiele, wiele innych.

Curl zapewnia również proxy, wznowić transfery, uwierzytelnianie użytkownika, certyfikaty SSL i wiele więcej.

Co to jest wget?

GNU WGET, powszechnie nazywany WGET, jest bezpłatnym narzędziem wiersza poleceń do przesyłania plików za pomocą HTTP/HTTPS, FTP i FTPS. Zapewnia funkcje takie jak pobieranie rekurencyjne, kontrola przepustowości, wznawia przeniesione transfery, pobieranie w tle, pliki i katalogi rekurencyjne i wiele innych.

Jak zainstalować Curl i WGET?

Curl i WGET są popularnymi narzędziami dostępnymi w głównych dystrybucjach Linux; Jeśli nie masz zainstalowanego narzędzia, użyj poniższych poleceń do instalacji:

Debian/Ubuntu:

# Zainstaluj curl
sudo apt-get curl
# Zainstaluj WGET
sudo apt-get install wget

Arch/Manjaro:

# Zainstaluj curl
sudo pacman -s curl
# Zainstaluj WGET
sudo pacman -s wget

Rehl/Centos/Fedora:

# Zainstaluj curl
sudo yum instal instaluj curl
sudo dnf instaluj curl
# Zainstaluj WGET
sudo yum instaluj wget
sudo dnf instaluj wget

Jak używać curl i wget (przykładowe przypadki użycia)?

Aby zapewnić, że rozumiesz podobieństwa i różnice między Curl i WGET, dobrze jest spojrzeć na kilka przykładów:

Protokoły HTTP/HTTPS:

Zarówno protokoły Curl, jak i WGET obsługują HTTP i HTTPS. Stąd, jeśli pobramy stronę internetową, taką jak Linuxhint.com:

curl https: // linuxhint.com -o Linuxhint.html
curl https: // linuxhint.com -o Linuxhint.html
% Całkowity % otrzymał % xferd średnia prędkość czas czas czasu
DLOAD PLOOD Całkowita spędzona prędkość
100 256K 0 256K 0 0 166K 0-:-:-0:00:01-:-:-166k

Domyślnie Curl wydrukuje zawartość zasobu internetowego w terminalu. Używamy flagi -O, aby przekierować wyjście do pliku.

Poniżej dotyczy WGET:

wget https: // linuxhint.com
--2021-06-20 05: 09: 45-- https: // Linuxhint.com/
Rozwiązanie Linuxhint.com (Linuxhint.com)… 104.21.58.234, 172.67.209.252, 2606: 4700: 3033 :: 6815: 3aea,…
Łączenie z Linuxhint.com (Linuxhint.com) | 104.21.58.234 |: 443… Połączone.
Wysłane żądanie HTTP, czekając na odpowiedź… 200 OK
Długość: nieokreślony [tekst/html]
Oszczędzanie na: „indeks.html '
indeks.html
[[[ <=> ] 256.25k 506kb/s w 0.5s
2021-06-20 05:09:46 (506 kb/s)-„indeks.html 'uratowany [262396]

WGET, z drugiej strony, zapisuje żądany zasób do pliku.

Należy zauważyć, że oba narzędzia pobierają zasób. Szczegóły LS dwóch plików pokazują obie rozmiary plików.

indeks $ ls -l.HTML Linuxhint.html
-RW-RW-R-- 1 Linuxhint Linuxhint 262396 19 15:50 Indeks.html
-RW-RW-R-- 1 Linuxhint Linuxhint 262396 czerwca 20 05:07 Linuxhint.html

Protokół FTP:

Zarówno do pobrania obsługi Curl, jak i WGET na protokołach FTP. Jednak Curl obsługuje przesłanie do FTP.

Użyj poniższej komendy, aby pobrać pliki z serwera FTP z WGET:

wget --User = debian - -patword = 'debian' ftp: // 192.168.0.112/Backup.Zst
wget --User = debian - -patword = 'debian' ftp: // 192.168.0.112/Backup.Zst
--2021-06-20 05: 29: 06-- ftp: // 192.168.0.112/Backup.Zst
=> 'kopia zapasowa.ZST '
Łączenie z 192.168.0.112: 21… połączone.
Logowanie się jako Debian… zalogował się!
==> Syst… gotowe. ==> PWD… gotowe.
==> Typ I… gotowe. ==> CWD nie jest potrzebne.
==> Kopia zapasowa rozmiaru.Zst… gotowe.
==> PASV… gotowe. ==> Wzryskiwanie kopii zapasowej.Zst… gotowe.
kopia zapasowa.Zst
[[[ <=> ] 0 --.-Kb/s w 0s
2021-06-20 05:29:06 (0.00 b/s) - „kopia zapasowa.ZST „SAVED [0]
Za pomocą Curl dodaj flagę -u jako:
curl -u debian: debian 'ftp: // 192.168.0.112/Backup.Zst '-o Backup.Zst
curl -u debian: debian 'ftp: // 192.168.0.112/Backup.Zst '-o Backup.Zst
% Całkowity % otrzymał % xferd średnia prędkość czas czas czasu
DLOAD PLOOD Całkowita spędzona prędkość
0 0 0 0 0 0 0-:-:--:-:-:-:-0
Aby przesłać plik do FTP z Curl, używamy opcji -T jako:
curl -u debian: debian -t „backup1.ZST ”ftp: // 192.168.0.112/ftp/

Upewnij się, że katalog istnieje, a użytkownik ma uprawnienia do zapisu.

NOTATKA: Chociaż Curl obsługuje szeroką gamę protokołów, nie zapewnia rekurencyjnych pobierania. Z drugiej strony, WGET obsługuje pobieranie rekurencyjne za pomocą opcji -rekurencyjnej jako zarówno protokołów HTTP/HTTPS, jak i FTP/FTPS, takiej funkcjonalności.

Podobieństwa między wget i curl

Teraz na lukier na torcie:

  • Oba narzędzia obsługują standardowe protokoły, takie jak HTTP, HTTPS, FTP, FTPS.
  • Oba narzędzia pobierają pliki z Internetu.
  • Oba narzędzia obsługują pliki cookie HTTP.
  • Oba narzędzia obsługują wyjście do pliku.
  • Zarówno bezpłatne, jak i aktywnie opracowane narzędzia.
  • Oba narzędzia obsługują przelewy wznowić.
  • Oba narzędzia obsługują post HTTP.

Różnice między wget i curl

Oto niektóre z różnic między Curl i WGET:

  • WGET to proste narzędzie do transferu, a Curl oferuje o wiele więcej.
  • Curl zapewnia bibliotekę libcurl, którą można rozszerzyć na aplikacje GUI. Z drugiej strony wget to proste narzędzie wiersza poleceń.
  • WGET obsługuje mniej protokołów w porównaniu do Curl.
  • Pliki rekurencyjne nie są obsługiwane w curl.
  • WGET jest natywnie dostępny w systemach Linux, podczas gdy Curl jest łatwo dostępny w systemach Windows.
  • Curl obsługuje wiele równoległych transferów.
  • Curl wykonuje dekompresje HTTP kodowane transfer.
  • Curl obsługuje dwukierunkowy HTTP, a WGET oferuje zwykły post HTTP.
  • Curl obsługuje więcej metod Auth HTTP w porównaniu do WGET.
  • WGET nie obsługuje skarpet.
  • Wget wymaga zainstalowanego gnulib.
  • W przeciwieństwie do Curl funkcje takie jak pliki cookie, znaczniki czasu i przekierowania są domyślnie włączone w WGET. Curl wymaga wyraźnie określonego.

Wniosek

Ten samouczek koncentrował się na podobieństwach i różnicach między Curl. Chociaż może się wydawać, że curl jest doskonałym wyborem, są przypadki, w których WGET jest najlepszym wyborem.

Radzę ci wybrać, co działa dla Ciebie.