パッケージがインストールされてcommand-not-found
いてユーザーがシステムに存在しないコマンドを実行しようとすると、実行可能ファイルを指定したパッケージ名を含むアドバイスが印刷されます。同じことをしますが、実行可能ファイル名を引数として使用するコマンドはありますか?
編集:私は読んだファイルがどの(削除された)Debianパッケージに属しているかを調べる方法は?ただし、これらの提案のいずれも明確な結果を提供するコマンドを提供しませんcommand-not-found
。
答え1
あなたはそれ自体を使うことができますcommand-not-found
:
command-not-found --ignore-installed ls
どのパッケージにコマンドが含まれているかをお知らせしますls
。 (--ignore-installed
インストールされているパッケージを考慮しないでください。特にインストールされている場合は、すぐにコマンドを実行しないでください。)
または、次のものを使用できますapt-file
。
apt-file search bin/ls
パスに「bin / ls」を含むファイルを含むすべてのパッケージが一覧表示されます。次の項目のみを一致するようにフィルタリングできますls
。
apt-file search bin/ls | grep bin/ls$
答え2
はい、コマンドは次のとおりですcommand-not-found
。
$ command-not-found firefox
The program 'firefox' is currently not installed. To run 'firefox' please ask your administrator to
install the package 'firefox-esr'
firefox: command not found
ここは正確に出力を自動的に生成するためにシェルキャプチャが実行されるのと同じ機能です。
apt-file search firefox
一致するものを見つけるためにも使用できます。文書パッケージに。
答え3
apt-fileとそのperl正規表現は、ファイルが$ PATHのどこかにインストールされていることを確認する限り、ほとんどすべての操作を実行できます。
apt-file find --regexp "/$COMMAND$" | grep -E "($(tr : '|' <<< "$PATH"))/$COMMAND$""