Este é realmente apenas um ajuste de sua abordagem:
cat /etc/apt/sources.list | grep deb | cut -d' ' -f2
A parte cut -d' ' -f2
corta a segunda coluna da linha que contém a palavra deb
.
Como obter o nome do servidor de atualização usando a linha de comando?
Eu sei que consegui ler a partir do arquivo da lista de fontes, por exemplo:
cat /etc/apt/sources.list
dá:
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted multiverse
Então eu uso o servidor dos EUA.
Mas como posso fazer isso de maneira mais eficiente?
Este é realmente apenas um ajuste de sua abordagem:
cat /etc/apt/sources.list | grep deb | cut -d' ' -f2
A parte cut -d' ' -f2
corta a segunda coluna da linha que contém a palavra deb
.
Você pode usar a opção --print-uris
de apt-get
$ sudo apt-get --print-uris update||grep Packages.bz2|awk '{print $2}'|sed -e 's/_ubuntu_dists_vivid\(-\|_\)\?/ /' -e 's/_binary-.*_Packages//'|sort -u
Este não atualizará a lista de pacotes
Eu tenho essa idéia da resposta por meskobalazs.
Você pode tentar executar este comando no terminal
server=$(cat /etc/apt/sources.list | grep -m 1 deb\ h) ; echo ${server:11:2}
grep -m 1
retorna apenas a primeira correspondência. ${server:11:2}
retorna as duas primeiras letras depois de deb http://
.
quando executo o comando, a saída é sg
recortada de deb http://sg.archive.ubuntu.com/ubuntu/ trusty main restricted