특정 확장자로 끝나는 모든 파일을 쉘 glob과 일치시킵니다(예: .sh로 끝나는 모든 파일).

특정 확장자로 끝나는 모든 파일을 쉘 glob과 일치시킵니다(예: .sh로 끝나는 모든 파일).

특정 확장자로 끝나는 모든 파일을 쉘 글로브와 일치시키고 싶습니다.

.sh이 경우 첫 번째 줄에 "shebang"(like)을 넣은 후 Bash 셸을 사용하여 실행하는 bourne 파일 인 확장자로 끝나는 모든 파일을 찾고 싶습니다 .#!/bin/bash

예를 들어, 다음은 내 cron 명령입니다.

0 0 * * * "$HOME"/public_html/cron_daily/myfile.sh 2>/dev/null

.sh대신 확장명으로 끝나는 해당 디렉터리의 모든 파일에 myfile.sh를 대상으로 지정해야 합니다 .

아래 코드가 맞나요?

0 0 * * * "$HOME"/public_html/cron_daily/*$.sh 2>/dev/null

고쳐 쓰다

나는 이것이 glob을 사용할 때 잘 작동한다고 생각합니다.

*.{sh}

답변1

*.sh모든 파일을 일치시키려면 확장명을 사용하면 됩니다 .sh. (필요에 따라 경로를 추가합니다.)

그러나 이렇게 하면 원하는 결과가 나오지 않습니다. run-parts다음에서 실행되는 여러 스크립트 보기 cron:

0 0 * * * /usr/bin/run-parts "$HOME"/public_html/cron_daily/ 2>/dev/null

.../public_html/cron_daily(이렇게 하면 파일 뿐만 아니라 그 안의 모든 실행 파일이 실행됩니다 .sh. 그런데 cron 스크립트를 아래에 저장하는 것이 좋은 생각인가요 public_html? 해당 디렉토리가 웹 서버에서 제공됩니까?)

답변2

하나의 명령줄로 병합되므로 이 작업을 수행할 수 없습니다.

for scr in "$HOME"/public_html/cron_daily/*.sh ; do "$scr" 2> /dev/null; done

관련 정보