다음 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/.*
. 그러나 여기에는 .
및 가 포함됩니다 ..
.