이라는 스크립트가 있습니다 script.sh
. 파일 시스템의 어디에 있는지는 모르지만 존재한다는 것은 알고 있습니다.
스크립트를 찾아서 실행 가능하게 만들고 명령줄을 통해 한 줄로 실행하려면 어떻게 해야 합니까?
명령으로 실행하고 싶습니다. 찾아서 실행 가능하게 만들고 실행하십시오.
답변1
find
집에서는 다음 명령을 사용하십시오.find ~ -name script.sh
위에서 아무것도 발견되지 않으면
find
전체 F/S에 대해 다음 명령을 사용하십시오.find / -name script.sh 2>/dev/null
(
2>/dev/null
불필요한 오류 표시를 방지합니다).시작하세요:
/<whatever_the_path_was>/script.sh
즉시 제공됩니다.검색 및 실행 방법에 대한 추가 정보:
find / -name "script.sh" -exec chmod +x {} \; -exec {} \; 2>/dev/null
(" "가 여러 개인 경우 script.sh
모두 실행됩니다.)
답변2
파일 시스템에 똑같은 것을 호출하는 여러 스크립트가 있을 수 있으므로 이름으로 해당 스크립트를 찾은 다음 맹목적으로 실행하는 것은 아마도 매우 나쁜 생각일 것입니다.
이를 찾으려면 find
질문에 대한 다른 답변에서 J. Chomel이 보여준 방법을 사용하거나 다음을 사용하십시오 locate
.
$ locate script.sh
script.sh
그러면 시스템의 데이터베이스 검색을 기반으로 모든 사용자가 읽을 수 있는 위치에서 호출된 모든 파일을 찾습니다. 데이터베이스는 정기적으로(구성 방법에 따라 하루에 한 번 또는 일주일에 한 번) 업데이트되므로 마지막 파일 시스템 검사 이후 추가된 파일은 찾을 수 없지만 find
.
select
올바른 스크립트를 선택하고 실행할 수 있는 메뉴를 생성 할 수 있습니다 .
$ select script in $( locate script.sh ); do echo "$script"; break; done
이름만 인쇄하는 대신 선택한 스크립트를 실제로 실행 echo
하도록 변경하세요 .command