특정 명령을 제공하는 패키지 찾기

특정 명령을 제공하는 패키지 찾기

패키지가 설치되어 command-not-found있고 사용자가 시스템에 존재하지 않는 명령을 실행하려고 하면 실행 파일을 제공한 패키지 이름이 포함된 권고가 인쇄됩니다. 동일한 작업을 수행하지만 실행 파일 이름을 인수로 사용하는 명령이 있습니까?

편집 : 나는 읽었습니다파일이 어떤 (제거된) 데비안 패키지에 속해 있는지 알아내는 방법은 무엇입니까?그러나 이러한 제안 중 어느 것도 명확한 결과를 제공하는 명령을 제공하지 않습니다 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$""

관련 정보