如何使 apt-cache、apt-get 成为一个命令?

4 10.04 package-management 11.04

在 Ubuntu 11.04 或 10.04 中,我怎样才能将apt-get,apt-cache合而为一,myapt以便我可以像在 Fedora 中一样只使用一个?

例如:

myapt search yum   # same as apt-cache search
myapt remove yum   # same as apt-get remove
myapt install yum  # same as apt-get install
Run Code Online (Sandbox Code Playgroud)

知道如何为此做别名吗?

enz*_*tib 8

您可以创建一个包含以下内容的脚本

#!/bin/bash

command="$1"; shift

case $command in
  add|depends|dotty|dump|dumpavail|gencaches|madison|pkgnames|policy|rdepends|search|show|showpkg|showsrc|stats|unmet|xvcg)
    apt-cache "$command" "$@"
    ;;
  autoclean|autoremove|build-dep|check|clean|dist-upgrade|dselect-upgrade|install|purge|remove|source|update|upgrade)
    apt-get "$command" "$@"
    ;;
esac
Run Code Online (Sandbox Code Playgroud)

假设你称之为myapt。然后,为了仍然享受 bash 补全的好处,您需要将以下行添加到~/.bashrc

_myapt() {
  _apt_get
  tt=("${COMPREPLY[@]}")
  _apt_cache
  COMPREPLY+=("${tt[@]}")
  return 0
} &&
complete -F _myapt $filenames myapt
Run Code Online (Sandbox Code Playgroud)

不幸的是$command应该在任何选项之前,但似乎 bash 完成不适用于跟随命令的选项。