Bash 스크립트를 찾고 실행하는 방법은 무엇입니까?

Bash 스크립트를 찾고 실행하는 방법은 무엇입니까?

이라는 스크립트가 있습니다 script.sh. 파일 시스템의 어디에 있는지는 모르지만 존재한다는 것은 알고 있습니다.

스크립트를 찾아서 실행 가능하게 만들고 명령줄을 통해 한 줄로 실행하려면 어떻게 해야 합니까?

명령으로 실행하고 싶습니다. 찾아서 실행 가능하게 만들고 실행하십시오.

답변1

  1. find집에서는 다음 명령을 사용하십시오.

    find ~ -name script.sh 
    
  2. 위에서 아무것도 발견되지 않으면 find전체 F/S에 대해 다음 명령을 사용하십시오.

    find / -name script.sh 2>/dev/null
    

    ( 2>/dev/null불필요한 오류 표시를 방지합니다).

  3. 시작하세요:

    /<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

관련 정보