Desktop Linux Memo

qfile

最終更新:

gleaning

- view
管理者のみ編集可

qfile コマンド


  • ファイルを所有するパッケージを高速にリストアップする。
  • 孤児ファイルのチェック

などができる。

ファイルを所有するパッケージの検索

qfile /usr/bin/a2ps
この結果は下記である。
app-text/a2ps (/usr/bin/a2ps)

ちなみに、ほぼ同じことが equeryコマンドでも可能である。
equery b /usr/bin/a2ps
の結果は、
[ Searching for file(s) /usr/bin/a2ps in *... ]
app-text/a2ps-4.13c-r5 (/usr/bin/a2ps)
である。

qfile と equery の違いについて

検索速度が大きく違い、qfileは普通、一秒以内で結果が帰る。一方、equery の b オプションでは10秒以上かかることも多い。もちろん、これは検索の実装方法の違いであり、どちらがいいかは一概には言えないが、通常は高速な qfile で充分である。

孤児ファイルのチェック(-o オプション)

指定したファイルが、何らかのパッケージに所属するかどうかをチェックする。たとえば、/usr/bin/a2ps というファイルについてチェックする場合、
qfile -o /usr/bin/a2ps
とする(-o は orphans の意味)。もし、/usr/bin/a2ps が何らかのパッケージに所属しているならば、出力結果はない(プロンプトが返ってくるのみ)。
一方、もしも /usr/bin/a2ps がどのパッケージにも所属していない場合には、
/usr/bin/a2ps
という結果が返ってくる。

このように、qfile -o オプションを付けると、パッケージに所属していないファイルを返すことになるので、このコマンドは「どのパッケージにも所属していな孤児ファイルを検索する」ときに使うことになる。たとえば、
qfile -o /usr/lib/*.la
とすれば /usr/lib/ の libtool ファイルの中で、どのパッケージにも含まれていないファイルをリストアップしてくれる。再帰的にディレクトリを辿って調べる場合には、
qfile -o $(find /usr/lib -name *.la)
などとする。
ウィキ募集バナー