一个小技巧,适用于debian(或者其他衍生版)用户使用:
你是否会碰到,一个文件包明明在你的电脑中,但就是找不到他在哪里?甚至在Synaptic通过名字寻找也没有用?是否已经准备仍掉键盘朝外发火?别着 急,dpkg可以帮你!
我们假设你想要找出/usr/share/epiphany-browser/glade/epiphany.glade在哪里?你已经在 epiphany-browser检查过,但还是没有找到.现在让我们问问dpkg-query:
$ dpkg-query -S /usr/share/epiphany-browser/glade/epiphany.glade
epiphany-browser-data: /usr/share/epiphany-browser/glade/epiphany.glade

看,在epiphany- browser-data中找到了他。现在我们再使用dpkg-query,来找出此刻前所有存在于epiphany-browser-data中的文件 包:

$ dpkg-query -L epiphany-browser-data
/usr/share/epiphany-browser
/usr/share/epiphany-browser/components
/usr/share/epiphany-browser/components/epiphany.xpt
/usr/share/epiphany-browser/art
/usr/share/epiphany-browser/chrome
# …

我在我的.bashrc文件中,加入自定义的dpkg-query别名:

alias dpkgs=”dpkg-query -S”
alias dpkgl=”dpkg-query -L”

现在,上面那个例子就可以简化为dpkgl|epiphany-browser-data

并不是所有的文件都是使用packages来管理的,所以你不一定总可以找到你想要的东西。很显然,/home与/etc 中大部分用户自建的文件,
就不属于任何packages。但仍然有个便捷的方法让你来找到他们。
在最后一个例子中,你可以使用一个shell的嵌套命令来找出包含binary的包文件:

$ dpkg-query -S `which firefox`
firefox-3.0: /usr/bin/firefox

本文由阿泉译自 http://fosswire.com/post/2009/5/dpkg-query-find-package-file/,转载时请保留作者信 息。

本文来自: 阿泉博客 转载请注明地址: http://www.ciux.org/?p=573