单独更新指定ppa源:脚本+自动补全
发表于 : 2012-10-08 3:26
使用前提:1 网络环境不佳,apt-get update周期过长 2 添加了某ppa源,想立即更新它,又不需要更新全部apt源 3 确定自己在做什么
例如:输入
update-repo
按两下tab,出现全部ppa列表 输入edg 按下tab,直接返回xorg-edgers-ppa-quantal.list 回车输入密码,回车,开始更新
以下这段加入~/.bash_funcs
以下这段加入~/.bashrc
以下这段加入 ~/.bash_completion
source
使用方法:source后,在命令行输入
按两下tab,会出现ppa源的lists,输入关键字(不一定是开头字母),按tab,即可补全,回车输入密码再回车,开始更新此ppa源列表。
如果愿意,当然也可以将函数和其补全函数放入同一个脚本内,分开放的好处是便于管理,有些补全函数是可以重复使用的。
例如:输入
update-repo
按两下tab,出现全部ppa列表 输入edg 按下tab,直接返回xorg-edgers-ppa-quantal.list 回车输入密码,回车,开始更新
代码: 全选
[ -f $HOME/.bashrc ] && cp $HOME/.bashrc{,.bak}
[ -f $HOME/.bash_funcs ] && cp $HOME/.bash_funcs{,.bak}
[ -f $HOME/.bash_completion ] && cp $HOME/.bash_completion{,.bak}
代码: 全选
update-repo() {
sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/$1" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
}
代码: 全选
if [ -f $HOME/.bash_funcs ]; then
. $HOME/.bash_funcs
fi
代码: 全选
# Debian user-defined completion -*- shell-script -*-
_ppa_lists(){
local cur
_init_completion || return
COMPREPLY=( $( find /etc/apt/sources.list.d/ -name "*$cur*.list" -exec basename {} \; 2> /dev/null ) )
return 0
} &&
complete -F _ppa_lists update-repo
代码: 全选
. ~/.bashrc
. ~/.bash_completion
代码: 全选
update-ppa <tab> <tab>
如果愿意,当然也可以将函数和其补全函数放入同一个脚本内,分开放的好处是便于管理,有些补全函数是可以重复使用的。