패키지가 설치되어 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$""