Как получить имя сервера обновлений с помощью командной строки?
Я знаю, что могу прочитать его из файла списка источников, например:
cat /etc/apt/sources.list
дает:
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted multiverse
Тогда я использую сервер США.
Но как я могу сделать это более эффективным способом?
Это - действительно просто точная настройка Вашего подхода:
cat /etc/apt/sources.list | grep deb | cut -d' ' -f2
cut -d' ' -f2
часть отключает второй столбец от строки, содержащей Word deb
.
Можно использовать --print-uris
опция 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
, Это не будет обновлять список пакета
Я получил эту идею из ответа meskobalazs.
можно попытаться работать, эта команда в терминале
server=$(cat /etc/apt/sources.list | grep -m 1 deb\ h) ; echo ${server:11:2}
grep -m 1
возвращает только первое соответствие. ${server:11:2}
возвраты первые две буквы после deb http://
.
, когда я выполняю команду, вывод sg
сокращение из deb http://sg.archive.ubuntu.com/ubuntu/ trusty main restricted