我只是想知道,我最近安装了 ack(ubuntu 中的 ack-grep),但我不知道如何只输入 ack 来获取 ack-grep(由于某种原因,ack 被汉字翻译器占用)。
有没有比仅仅在 shell 中对事物进行别名更好的方法(这样它不是全局的,例如不能在 vim 中调用它)。
多谢!
答案1
您链接或复制ack-grep
到/usr/local/bin
以便它在 PATH 中优先:
sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack
ack
或者,像戴维建议的那样,如果不需要它,就删除它:
sudo apt-get remove ack
另一个解决方案是使用来dpkg-divert
告诉dpkg
您希望所有包/usr/bin/ack
在本地重命名,然后链接ack-grep
到ack
路径中。
答案2
在 Ubuntu/Debian 中你可以“转移” ack-grep
:
sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep
答案3
使用 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
这个命令很难正确执行,但由于以下原因,该解决方案优于 dpkg-divert:
- 不强制或覆盖软件包安装
- 为手册页设置从属链接
有关 Debian 替代品的更多信息,请访问: http://wiki.debian.org/DebianAlternatives
安装替代方案可以以 ack-grep 的形式调用ack
并使用 阅读手册页man ack
。
答案4
最简单的方法是通过 cpan 安装 ack。它将安装在 /usr/local/bin 中,优先于 /usr/bin。只需运行:
sudo cpan App::Ack
或者如果你没有 cpan 客户端:
curl -L cpanmin.us | perl - --sudo App::Ack