15 votos

Cómo descargar un repositorio de GitHub como .zip utilizando la línea de comandos

Estoy tratando de descargar un archivo .zip de GitHub utilizando la línea de comandos en Ubuntu. Estoy usando wget para ello en un sistema Ubuntu remoto.

Corro wget <link> donde <link> es el enlace de la barra de direcciones del archivo que quiero descargar. Termina con archive.zip?ref=master .

Ahora, cuando estoy ejecutando el comando, se está descargando un archivo con text/html y no el .zip archivo que quiero.

Por favor, díganme cómo conseguir que el enlace se dé como parámetro de wget . En este momento, sólo estoy copiando la dirección del enlace del botón (usando el clic derecho) y escribiendo eso como un wget parámetro.

0 votos

¿puede decir el comando exacto que está pegando?

1 votos

¿Su URL realmente termina con .zip?

0 votos

@kashish No la URL no termina con .zip . Estoy intentando descargar un proyecto de github y tiene un botón de descarga que da zip y otras opciones. Así que, estoy intentando desde allí. termina con archive.zip?ref=master

13voto

Robin Métral Puntos 232

Es hace funcionan, si se utiliza la URL correcta.

Para un repo de GitHub, hay un zip en https://github.com/<user>/<repo>/archive/<branch>.zip para que puedas descargarlo con:

wget https://github.com/<user>/<repo>/archive/<branch>.zip

Esto descarga el repo comprimido de una rama determinada. Tenga en cuenta que también puede sustituir la rama por un hash commit.

Uso de cURL

curl -L https://github.com/<user>/<repo>/archive/<branch>.zip

cURL's -L sigue a las redirecciones - es una opción por defecto en wget.

Descargar un .tgz en lugar de un .zip

También puedes descargar un tarball con:

wget https://github.com/<user>/<repo>/archive/<branch>.tar.gz

1 votos

curl -L -O <url> funciona en MacOS ; (posteando porque todo está relacionado con Unix) gracias por añadir la información sobre curl Aterricé aquí cuando buscaba el equivalente en MacOS, y aunque no es difícil instalarlo, wget no está instalado por defecto (mi caso de uso me limita la instalación). Se aconseja añadir -O como "La salida binaria puede estropear tu terminal"

12voto

derHugo Puntos 46

Por los comentarios he visto que realmente hablas de GitHub.

No funcionará así porque:

La descarga de un proyecto en GitHub hace que el servidor de GitHub empaquete primero el proyecto como zip y luego reenvío a un temporal enlace donde se obtiene su zip ..

este enlace sólo funcionará durante un tiempo determinado y luego GitHub eliminará tu archivo zip de sus servidores..

Así que lo que obtienes con wget es sólo la página html que te remitirá en cuanto se genere tu archivo zip.

Como uso sugerido

git clone http://github.com/<yourRepoLink> <optional local path where to store>

para descargar el repo git ... Si por alguna razón (por ejemplo, para transferirlo a otros) lo necesita explícitamente como zip todavía podría empaquetarlo después de la clonación está terminado..

2 votos

Después de la clonación, haga git archive -o output.zip , si todavía se necesita un archivo zip

0 votos

git clone funciona, naturalmente, pero hay casos en los que no tiene sentido instalar git sólo para descargar un repo.

0voto

Syaifur Rizal Puntos 1

Lo acabo de hacer, pero asegúrate de que estás usando el enlace correcto con el final de la URL con *.zip como lo que @Robin Métral dijo arriba.

Los pasos exactos que hice:

  1. Abrir repositorio GitHub.
  2. Haga clic con el botón derecho del ratón en el Descargue el Zip y copie la URL.
  3. Utilice esa URL copiada con wget en la terminal.

Creo que el servidor de GitHub aceptará wget y tratarla como una solicitud con el navegador.

0voto

Card_Trick Puntos 89

2021 Actualización Descargar y descomprimir desde GitHub usando wget

También ampliará y eliminará el archivo. Sólo hay que editar los valores de REPLACE_ y luego copiar/pegar

zip

GH_USER=REPLACE_WITH_USER \
GH_REPO=REPLACE_WITH_REPO \
GH_BRANCH=REPLACE_WITH_BRANCH \
wget https://github.com/${GH_USER}/${GH_REPO}/archive/refs/tags/${GH_BRANCH}.zip \
-O "${GH_REPO}-${GH_BRANCH}.zip" && \ 
unzip ./"${GH_REPO}-${GH_BRANCH}.zip" && \
rm ./"${GH_REPO}-${GH_BRANCH}.zip"

tgz

GH_USER=REPLACE_WITH_USER \
GH_REPO=REPLACE_WITH_REPO \
GH_BRANCH=REPLACE_WITH_BRANCH \
wget https://github.com/${GH_USER}/${GH_REPO}/archive/refs/tags/${GH_BRANCH}.tar.gz \
-O "${GH_REPO}-${GH_BRANCH}.tar.gz" && \
tar -xzvf ./"${GH_REPO}-${GH_BRANCH}.tar.gz" && \
rm ./"${GH_REPO}-${GH_BRANCH}.tar.gz"

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: