{"id":151,"date":"2017-04-06T11:01:28","date_gmt":"2017-04-06T14:01:28","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/2017\/04\/usando-comando-wget-no-linux\/"},"modified":"2026-09-08T02:28:46","modified_gmt":"2026-09-08T05:28:46","slug":"usando-comando-wget-no-linux","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/es\/2017\/04\/usando-comando-wget-no-linux\/","title":{"rendered":"Usando el comando wget en Linux"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro com as m\u00e3os no teclado e no mouse, acompanhando um download em progresso no terminal, com pacotes descendo da nuvem\" src=\"\/wp-content\/uploads\/2026\/09\/wget-v3.webp\" width=\"1052\" height=\"652\" \/><\/p>\n<div style=\"background:#fff8e1;border-left:4px solid #8b1a1a;padding:.8em 1em;margin:1em 0\"><strong>Nota (2026):<\/strong> entrada de 2017, revisada. Los ejemplos se reh\u00edcieron (el enlace de Ubuntu 16.04 ya no existe) y a\u00f1ad\u00ed lo que el texto original no ten\u00eda: l\u00edmite de ancho de banda, lista de descargas, mirroring de sitio, la comparaci\u00f3n honesta con el <code data-no-translation=\"\">curl<\/code> y el sucesor <code data-no-translation=\"\">wget2<\/code>. La serie actual de GNU Wget es la <strong>1.25<\/strong>.<\/div>\n<p>O <strong>wget<\/strong> descarga archivos desde la terminal y \u2014 la caracter\u00edstica que lo hizo insustituible \u2014 <strong>reanuda la descarga interrumpida<\/strong>. Quien ya ha perdido una ISO de 2 GB al final de la barra, con una conexi\u00f3n mala, sabe por qu\u00e9 esto importa. Sigue siendo la herramienta adecuada para scripting, para servidores sin interfaz gr\u00e1fica y para cuando la conexi\u00f3n no es fiable.<\/p>\n<p><!-- more --><\/p>\n<h2>De d\u00f3nde viene<\/h2>\n<p>El wget naci\u00f3 en 1995 como <strong>Geturl<\/strong>, escrito por Hrvoje Nik\u0161i\u0107. El nombre cambi\u00f3 cuando el autor se enter\u00f3 de un programa hom\u00f3nimo de Amiga, y la <em>W<\/em> proviene de World Wide Web. Forma parte del Proyecto GNU, est\u00e1 escrito en C port\u00e1til y habla HTTP, HTTPS y FTP.<\/p>\n<p>Cubri\u00f3 un hueco real de la \u00e9poca: no exist\u00eda un \u00fanico programa fiable que descargase por HTTP y FTP sin depender de Perl. Y, en una \u00e9poca de conexi\u00f3n telef\u00f3nica y enlace universitario lento, la capacidad de sobrevivir a una ca\u00edda de red sin intervenci\u00f3n humana era la caracter\u00edstica, no un detalle.<\/p>\n<p>Una nota a pie de p\u00e1gina hist\u00f3rica: en 2010 la analista Chelsea Manning us\u00f3 wget, dentro de la red SIPRNet, para descargar los <strong>250 mil telegramas diplom\u00e1ticos<\/strong> del banco Net-Centric Diplomacy, entregados despu\u00e9s a WikiLeaks. Los registros de las guerras de Irak y Afganist\u00e1n, que suelen aparecer en la misma frase, salieron por otro camino: se exportaron directamente desde el sistema CIDNE, sin el wget. La herramienta es neutra; el uso, no siempre.<\/p>\n<h2>Lo b\u00e1sico<\/h2>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># baixa um arquivo no diretorio atual\nwget https:\/\/exemplo.com\/arquivo.iso\n\n# -c retoma de onde parou, se o arquivo ja existir parcialmente\nwget -c https:\/\/exemplo.com\/arquivo.iso\n\n# salva com outro nome\nwget -O ubuntu.iso https:\/\/exemplo.com\/arquivo.iso\n\n# salva em outro diretorio\nwget -P ~\/Downloads https:\/\/exemplo.com\/arquivo.iso\n\n# baixa em segundo plano, com log em wget-log\nwget -b https:\/\/exemplo.com\/arquivo-grande.iso\n<\/code><\/pre>\n<p>O <code data-no-translation=\"\">-c<\/code> es el motivo por el que existe el comando. Indica al servidor que contin\u00fae desde el byte donde se qued\u00f3 el archivo local, en lugar de empezar de nuevo. Funciona si el servidor admite solicitudes parciales, algo que hacen casi todos.<\/p>\n<p>Un cuidado que casi nadie menciona: el comando <code data-no-translation=\"\">-c<\/code> <strong>asume<\/strong> que el archivo local con ese nombre es el comienzo del archivo remoto. Si all\u00ed hay otro archivo cualquiera con el mismo nombre, pide el resto a partir de ese tama\u00f1o y lo pega sobre lo que ya existe: el resultado tiene el tama\u00f1o correcto, el contenido corrupto y ning\u00fan aviso. Retoma \u00fanicamente lo que t\u00fa mismo comenzaste.<\/p>\n<h2>Cuando la red es mala<\/h2>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># tenta indefinidamente, com espera crescente de ate 30s entre tentativas\nwget -c --tries=0 --waitretry=30 https:\/\/exemplo.com\/arquivo.iso\n\n# desiste de uma tentativa que travar por mais de 30s\nwget -c --timeout=30 --tries=20 https:\/\/exemplo.com\/arquivo.iso\n\n# limita a banda, para nao engasgar a conexao da casa ou do escritorio\nwget --limit-rate=500k https:\/\/exemplo.com\/arquivo.iso\n<\/code><\/pre>\n<p>Sobre el <code data-no-translation=\"\">--waitretry<\/code>: no es un intervalo fijo, es un <em>techo<\/em>. wget espera 1 segundos tras el primer fallo, 2 tras el segundo, y as\u00ed sucesivamente hasta el valor que le indicaste. Y el valor por defecto ya es 10 segundos, as\u00ed que <code data-no-translation=\"\">--waitretry=10<\/code> no cambia nada \u2014 solo merece la pena escribirlo para aumentarlo. El <code data-no-translation=\"\">--tries<\/code> tambi\u00e9n viene ya en 20; <code data-no-translation=\"\">--tries=0<\/code> es lo que significa infinito.<\/p>\n<p>O <code data-no-translation=\"\">--limit-rate<\/code> est\u00e1 subestimado: en un servidor compartido, descargar a toda velocidad derriba la latencia de todo el mundo. Limitar a 500 KB\/s suele ser la diferencia entre una descarga educada y una llamada al soporte.<\/p>\n<h2>Varios archivos a la vez<\/h2>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># um arquivo de texto com uma URL por linha\nwget -i lista-de-urls.txt\n\n# continuando e limitando a banda, para uma lista grande\nwget -c --limit-rate=1m -i lista-de-urls.txt\n\n# todos os PDFs de uma pagina, sem subir de diretorio\nwget -r -l 1 -np -A pdf https:\/\/exemplo.com\/documentos\/\n<\/code><\/pre>\n<p>En esta \u00faltima, cada opci\u00f3n cuenta: <code data-no-translation=\"\">-r<\/code> es recursivo, <code data-no-translation=\"\">-l 1<\/code> limita a un nivel de profundidad, <code data-no-translation=\"\">-np<\/code> (<em>no-parent<\/em>) evita que suba al directorio superior, y <code data-no-translation=\"\">-A pdf<\/code> acepta solo PDFs. Sin el <code data-no-translation=\"\">-np<\/code> y sin el <code data-no-translation=\"\">-l<\/code>, un recursivo puede terminar descargando todo el sitio.<\/p>\n<h2>Espejar un sitio web<\/h2>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># baixa uma pagina com tudo que ela precisa para abrir offline\nwget -p -k https:\/\/exemplo.com\/artigo.html\n\n# espelho completo do site, navegavel offline\nwget --mirror -p -k -P .\/copia https:\/\/exemplo.com\/\n<\/code><\/pre>\n<p><code data-no-translation=\"\">-p<\/code> trae im\u00e1genes, CSS y scripts de la p\u00e1gina; <code data-no-translation=\"\">-k<\/code> convierte los enlaces para que apunten a los archivos locales; <code data-no-translation=\"\">--mirror<\/code> equivale a <code data-no-translation=\"\">-r -N -l inf --no-remove-listing<\/code> \u2014 recursi\u00f3n infinita con verificaci\u00f3n de fecha.<\/p>\n<p>Dos detalles que evitan bloqueos: usa <code data-no-translation=\"\">--wait=1<\/code> para no martillear el servidor y respeta la <code data-no-translation=\"\">robots.txt<\/code>. Existe <code data-no-translation=\"\">-e robots=off<\/code>, pero ignorar la pol\u00edtica del sitio es decisi\u00f3n tuya y suele acabar en bloqueo de IP.<\/p>\n<h2>Cabeceras, autenticaci\u00f3n y certificado<\/h2>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># identificar-se como um navegador\nwget -U \"Mozilla\/5.0\" https:\/\/exemplo.com\/arquivo\n\n# enviar um cabecalho (ex.: token de API)\nwget --header=\"Authorization: Bearer SEU_TOKEN\" https:\/\/api.exemplo.com\/dados\n\n# autenticacao HTTP basica\nwget --user=usuario --ask-password https:\/\/exemplo.com\/privado\/arquivo\n<\/code><\/pre>\n<p>Vas a encontrar, en foros, la sugerencia de usar <code data-no-translation=\"\">--no-check-certificate<\/code> cuando da error de SSL. Eso desactiva la verificaci\u00f3n del certificado y abre la puerta a interceptaciones. Un error de certificado casi siempre es reloj del sistema mal ajustado o paquete de CAs desactualizado \u2014 corrige la causa (<code data-no-translation=\"\">sudo apt install --reinstall ca-certificates<\/code>) en vez de desactivar la comprobaci\u00f3n.<\/p>\n<h2>\u00bfwget o curl?<\/h2>\n<p>Ambos descargan archivos, pero resuelven problemas diferentes:<\/p>\n<ul>\n<li><strong>wget<\/strong> gana en descarga: retoma solo, es recursivo, replica el sitio e insiste cuando se cae la red. Es la herramienta de <em>buscar archivo<\/em>.<\/li>\n<li><strong>curl<\/strong> gana en API: habla muchos m\u00e1s protocolos, monta solicitudes complejas, env\u00eda datos e imprime en la salida est\u00e1ndar por naturaleza \u2014 encaja en pipe. Es la herramienta para <em>conversar con un servicio<\/em>.<\/li>\n<\/ul>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">wget -O - https:\/\/exemplo.com\/script.sh | less   # wget imprimindo na saida\ncurl -L -O https:\/\/exemplo.com\/arquivo.iso       # curl salvando com o nome remoto\n<\/code><\/pre>\n<p>F\u00edjate en el <code data-no-translation=\"\">-L<\/code> en curl: no sigue redirecciones por defecto, y wget s\u00ed. Es la pega m\u00e1s com\u00fan de quien intercambia uno por otro en un script.<\/p>\n<h2>Y qu\u00e9 pasa con wget2<\/h2>\n<p>El proyecto GNU mantiene <a href=\"https:\/\/gitlab.com\/gnuwget\/wget2\">wget2<\/a>, reescrito con descargas paralelas, soporte para HTTP\/2 y compresi\u00f3n \u2014 bastante m\u00e1s r\u00e1pido en sitios con muchos archivos peque\u00f1os. Donde est\u00e9 empaquetado, se instala junto sin conflicto, con el binario <code data-no-translation=\"\">wget2<\/code>:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">sudo apt install wget2\nwget2 --version\n<\/code><\/pre>\n<p>La versi\u00f3n instalada, sin embargo, var\u00eda bastante \u2014 vale la pena comprobarla antes de confiar en una funci\u00f3n nueva:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">wget --version | head -1\n<\/code><\/pre>\n<p>Ubuntu 24.04 LTS trae la <strong>1.21.4<\/strong>; Debian 13, la <strong>1.25.0<\/strong>. Y hay un caso que rompe la suposici\u00f3n: <strong>en Fedora, desde la versi\u00f3n 40, el comando <code data-no-translation=\"\">wget<\/code> ya es el wget2<\/strong> \u2014 el paquete cl\u00e1sico ha sido jubilado y sustituido. Donde ambos coexisten (Debian, Ubuntu), wget2 se instala junto a wget sin conflicto. La propia propuesta de sustituci\u00f3n de Fedora registra las carencias del sucesor: fuera de WARC y FTP, es compatible.<\/p>\n<h2>Verifica la descarga antes de usarla<\/h2>\n<p>Descargar con una conexi\u00f3n inestable, con reanudaci\u00f3n, y salir grabando en un pendrive sin verificar es el camino m\u00e1s corto para perder una tarde con una instalaci\u00f3n que falla a mitad de camino. Toda distribuci\u00f3n publica un archivo de sumas junto a la imagen:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">wget https:\/\/exemplo.com\/SHA256SUMS\nwget https:\/\/exemplo.com\/imagem.iso\n\nsha256sum -c SHA256SUMS --ignore-missing\n# imagem.iso: SUCESSO\n<\/code><\/pre>\n<p>O <code data-no-translation=\"\">--ignore-missing<\/code> evita errores en las dem\u00e1s im\u00e1genes listadas en el archivo que no has descargado. Si la salida dice <em>FALL\u00d3<\/em>, la descarga lleg\u00f3 corrupta: b\u00f3rrala y vuelve a descargarla, sin <code data-no-translation=\"\">-c<\/code>.<\/p>\n<h2>Para continuar<\/h2>\n<ul>\n<li><a href=\"\/es\/2017\/04\/usando-comando-dd-no-linux\/\">Usando el comando dd<\/a> \u2014 para grabar en el pendrive la ISO que acabas de descargar<\/li>\n<li><a href=\"\/es\/2017\/04\/500-comandos-do-linux\/\">500 comandos de Linux<\/a><\/li>\n<li><a href=\"https:\/\/www.gnu.org\/software\/wget\/manual\/wget.html\">Manual oficial de GNU Wget<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>O wget baixa arquivo pelo terminal e \u2014 a caracter\u00edstica que o tornou insubstitu\u00edvel \u2014 retoma download interrompido. Quem j\u00e1 perdeu uma ISO de 2 GB no fim da barra, em conex\u00e3o ruim, sabe por que isso importa. Ele continua &#8230; <a title=\"Usando el comando wget en Linux\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/es\/2017\/04\/usando-comando-wget-no-linux\/\" aria-label=\"Leer m\u00e1s sobre Usando o comando wget no Linux\">Leer m\u00e1s<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,2],"tags":[124,413,412,4,117,411],"class_list":["post-151","post","type-post","status-publish","format-standard","hentry","category-dicas","category-linux","tag-comandos","tag-curl","tag-download","tag-linux","tag-terminal","tag-wget"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/comments?post=151"}],"version-history":[{"count":6,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/151\/revisions"}],"predecessor-version":[{"id":1073,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/151\/revisions\/1073"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/media?parent=151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/categories?post=151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/tags?post=151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}