Então, você baixou uma biblioteca que deseja usar. Digamos que ele estava hospedado no Codeplex e o git estava quebrado como de costume. Apenas para um exemplo, diremos que foi a biblioteca C ++ REST de plataforma cruzada da Microsoft (bastante boa), Casablanca .
Sim, isso é baseado em uma história verdadeira. Cerca de dez minutos atrás.
Portanto, o acesso ao git está bloqueado, mas você pode obter um zip da fonte mais recente. Sem perder o ritmo, você cd
para ~/src
ou onde quer que você gosta de manter essas coisas, e unzip ~/Downloads/casablanca-averylonghash.zip
.
Você observa ansiosamente enquanto os arquivos ganham vida.
Um prompt selvagem aparece:
Overwrite readme.txt [nYANh]?
… ou algo semelhante. Você bateu y
, se perguntando por que há um readme.txt para sobrescrever. Arquivos compactados por … ou melhor, descompactados por … e então você faz uma pausa.
ls
Porra.
O zip não tinha um diretório de nível superior, os diretórios de origem de casablanca estão todos misturados com seus outros diretórios de biblioteca.
Não entre em pânico. Bash é seu amigo.
Você ainda quer a biblioteca de Casablanca de qualquer maneira, então a coloca em seu lugar:
$ mkdir casablanca
$ cd casablanca
$ unzip ~/Downloads/casablanca-longhash.zip
Ok, agora você tem os arquivos, devidamente contidos. E você pode usar isso para limpar a bagunça que acabou de fazer. Depois de cd
voltar para ~/src
, faça o seguinte:
for i in `ls casablanca`
do
rm -rf $i
done
É brutal e inseguro, mas se você apenas sobrescrever nomes de arquivo conflitantes, não é como se você os recebesse de volta.
Já fui mordido por arquivos mal estruturados (nunca confie em um zip!) Muitas vezes e esqueci como poderia ter corrigido facilmente o suficiente naquelas vezes, achei que merecia uma postagem. Espero que ajude alguém.
Ah, e Codeplex é terrível. Eu realmente espero que a Microsoft migre todos os seus projetos de código aberto para o Github, eles estão definitivamente no processo.