패턴이 이 문자열과 일치할 때 Bash가 "No such file.."을 반환하는 이유는 무엇입니까?

패턴이 이 문자열과 일치할 때 Bash가 "No such file.."을 반환하는 이유는 무엇입니까?

다음 for 루프가 있습니다.

for f in ~/.lo-rcs/common/*
do
   . $f
done

다음 오류가 반환됩니다.

bash: /home/sk/.lo-rcs/common/*: No such file or directory

bashrc 명령을 여러 개의 별도 파일로 계속 정렬하고 $HOME/.lo-rcs/common.

질문

Bash가 와일드카드 패턴 문자열과 이름이 같은 파일을 검색하지 않는 이유는 무엇입니까?

  • 참고 #1: .lo-rcs/common별도의 별칭 파일이 있는 내 로컬 rc 구성 폴더입니다. 하나는 내보낸 변수용, 다른 하나는 함수용 등으로 쉽게 유지 관리할 수 있습니다.
  • 노트 2:아래 파일은 모두 .lo-rcs/common숨김 파일입니다. 파일이 앞에 점으로 표시되었습니다.

답변1

~/.lo-rcs/common/*디렉터리에 숨겨져 있지 않은 모든 파일과 일치합니다. 디렉터리에 파일이 없거나 모든 파일이 숨겨져 있으면 패턴이 자체적으로 평가되어 오류 메시지가 발생합니다.

이러한 파일을 숨길 이유가 없습니다. - 이름을 바꾸면 모든 것이 예상대로 작동합니다.

이러한 파일을 숨기려면 .을 사용할 수 있습니다 ~/.lo-rcs/common/.*. 그러나 여기에는 .및 가 포함됩니다 ...

관련 정보