您查看的文章来源于http://www.oklinux.cn
例如:
compctl -g '*.tar.gz *.gz*.tgz' -g '*(-/)' tar zxvf
过滤候选项
tar zxvf [tab]
候选菜单中只出现扩展名为 .tar.gz .gz .tgz 的文件。
不过这个功能比较复杂,容易引起混乱,通常需要脚本配合
compctl -g '*.tar.bz2 *.tar.gz *.bz2 *.gz *.jar *.rar *.tar *.tbz2 *.tgz *.zip *.Z' -g '*(-/)' extract
extract() {
if [[ -z "$1" ]] ; then
print -P "usage: \e[1;36mextract\e[1;0m < filename >"
print -P " Extract the file specified based on the extension"
elif [[ -f $1 ]] ; then
case ${(L)1} in
*.tar.bz2) tar -jxvf $1 ;;
*.tar.gz) tar -zxvf $1 ;;
*.bz2) bunzip2 $1 ;;
*.gz) gunzip $1 ;;
*.jar) unzip $1 ;;
*.rar) unrar x $1 ;;
*.tar) tar -xvf $1 ;;
*.tbz2) tar -jxvf $1 ;;
*.tgz) tar -zxvf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*) echo "Unable to extract '$1' :: Unknown extension"
esac
else
echo "File ('$1') does not exist!"
fi
}
考虑到使用的不多,配置又麻烦,我没有配置这个功能。不过我想肯定有人愿意在这上面花点时间。
将Zsh设置为默认Shell(不建议更改root用户的默认shell)
usermod -s /usr/local/bin/zsh