Isto é, como eu baixo vários branches master do GitHub, e pretendo ter um script mais bonito (e talvez mais confiável?).
wget -P ~/ https://github.com/user/repository/archive/master.zip
unzip ~/master.zip
mv ~/*-master ~/dir-name
Isso pode ser encurtado para uma linha de alguma forma, talvez com alcatrão e cano?
Resolva os problemas de baixar diretamente para o diretório inicial ~/
e ter um determinado nome para o diretório ( mv
realmente necessário?).
O caminho mais curto que parece ser o que você deseja seria
git clone https://github.com/user/repository --depth 1 --branch=master ~/dir-name
. Isso copiará apenas a ramificação master, copiará o mínimo possível de informações extras e as armazenará em arquivos~/dir-name
.Isso clonará os arquivos no novo diretório criado:
Vamos começar com a função bash que eu tinha à mão para meu uso pessoal:
Você deseja que o arquivo seja sempre chamado de master.zip e sempre seja baixado em seu diretório inicial, então:
No entanto, há algumas coisas para você considerar:
1) Meu script original fornecerá a você um nome de arquivo zip de download exclusivo para cada download, com base no nome do repositório github, que geralmente é o que a maioria das pessoas realmente deseja, em vez de tudo ser chamado
master
e ter que renomeá-los manualmente posteriormente para exclusividade. Nessa versão do script, você pode usar o valor de $out_file para nomear exclusivamente a árvore descompactada do diretório raiz.2) Se você realmente deseja que todos os
zip
arquivos baixados sejam nomeados~/master.zip
, deseja excluí-los depois de descompactados?3) Como você parece querer sempre colocar tudo no diretório
~/myAddons
, por que não executar todas as operações lá e evitar a necessidade de mover o diretório descompactado?Aqui estão algumas maneiras de baixar + descompactar no comando oneliner :