답변1
쉘은 와일드카드 문자를 파일로 확장하므로 항상 정규식을 작은따옴표로 묶으십시오.
그래서:
ls -1 | grep '\.java$'
불필요한 와일드카드 문자를 제거했습니다.
그러나 ls
출력을 구문 분석하는 것은 좋은 생각이 아닙니다 find
. 다음을 제안합니다.
find . -name '*.java'
재귀적으로 검색하거나
find . ! -name . -prune -name '*.java'
또는 GNU와 호환되거나 find
:
find . -name '*.java' -mindepth 1 -maxdepth 1
현재 디렉토리만 검색합니다.
.
이 특별한 경우에는 깊이 0 (파일 검색을 시작하도록 지정한 현재 작업 디렉터리 ) 에 있는 유일한 파일이 find
패턴과 일치하지 않으므로 *.java
생략할 수 있습니다 -mindepth 1
.