ack-grep在ubuntu中确认

我只是想知道,我最近安装了ack(在Ubuntu的ack-grep),我不知道如何inputack来获得ack-grep(由于某种原因ack被汉字翻译器所占用)。

有没有更好的办法,而不是只是别在shell的东西(它不是这样的全球性,不能唤起它在VIM例如)。

非常感谢!

您将ack-grep链接或复制到/usr/local/bin以便在PATH中保持优先:

 sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack 

或者像戴维build议的那样,如果你不需要的话,

 sudo apt-get remove ack 

另一个解决scheme是使用dpkg-divert来告诉dpkg你希望所有的软件包在本地重命名它们的/usr/bin/ack ,然后把ack-grep到path中的ack-grep

在Ubuntu / Debian中,您可以“转移” ack-grep

 sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep 

使用Debian Alternatives系统。

 $ update-alternatives --install /usr/bin/ack ack /usr/bin/ack-grep 100 \ --slave /usr/share/man/man1/ack.1p.gz ack.1p.gz /usr/share/man/man1/ack-grep.1p.gz 

该命令很难得到正确的结果,但是由于以下原因,该解决scheme优于dpkg-divert:

  1. 不强制或覆盖软件包安装
  2. 启用为联机帮助页设置从属链接

有关Debian Alternatives的更多信息,请访问: http : //wiki.debian.org/DebianAlternatives

安装这个选项可以调用ack-grep,并使用man ack来读取manpage。

最不显眼的是:

别名ack = ack-grep

最简单的事情就是通过cpan安装ack。 它将安装在/ usr / local / bin中,优先于/ usr / bin。 赶紧跑:

 sudo cpan App::Ack 

或者如果您没有cpan客户端:

 curl -L cpanmin.us | perl - --sudo App::Ack 

假设汉字翻译器不是/ usr / bin / ack,并且它的位置比/ usr / bin更晚,那么你可以这样做:

 sudo ln -sib /usr/bin/ack-grep /usr/bin/ack 

如果目标存在,将提示您确认操作,如果select是,则会创build备份。

我会去符号链接选项,因为如果你复制你的bash文件,它可以节省将别名转移到另一台机器的危险。

去这个,对我的Ubuntu 12.04版本工作正常

 sudo apt-get install ack-grep sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack 

我的解决scheme不是很干净,因为它写在/bin/但只要/usr/bin/ack是一个二进制文件而不是符号链接,对我来说这样更容易。

 sudo update-alternatives --install /bin/ack ack /usr/bin/ack 100 sudo update-alternatives --install /bin/ack ack /usr/bin/ack-grep 102 

select使用哪一个

 sudo update-alternatives --config ack