답변:
가능한 모든 조합을 원하면 다음을 사용하십시오.
for i in *.[Pp][Nn][Gg]; do
또는
shopt -s nocaseglob
for i in *.png; do
이 스크립트를 실행하기 전까지는 모든 스크립트 쉘 글로브 (예 : 와일드 카드 파일 일치)를 대소 문자를 구분하지 않습니다 shopt -u nocaseglob
.
.PNG 및 .png 만 원한다면 (예 : .PnG 또는 .pnG는 아님) 다음 중 하나를 사용하십시오.
shopt -s nullglob
for i in *.png *.PNG; do
또는
for i in *.png *.PNG; do
[[ -e "$i" ]] || continue
nullglob 또는 존재 검사의 이유는 소문자 또는 대문자 확장자 만있는 경우 파일 목록에 일치하지 않는 패턴이 포함되어 루프 본문에 오류가 발생하기 때문입니다. nocaseglob와 마찬가지로 나중에 nullglob 셸 옵션을 끄고 싶을 수도 있습니다 (Nullglob을 사용한 경험이 종종 스크립트에서 특히 좋지만). 실제로, 나는 일치하는 것이없는 경우를 대비하여 모든 파일 일치에 대해 nocaseglob 또는 존재 확인을 사용하는 것이 좋습니다.
당신은 또한 같은 하나의 라이너를 시도 할 수 있습니다
찾기 . -iname "* .png"-exec ....
또는
찾기 . -iname "* .png"| xargs ....
편집
재귀에 대한 아래의 @Yab 의견도 참조하십시오.
find -maxdepth 1 -iname "*.png"
for i in *.{png,PNG}