디렉토리의 모든 파일을 삭제 example/
하지만 .env
파일은 삭제하지 않는 방법은 무엇입니까?
아마도
rm -f !(.env) example/
?
답변1
쉘에서 extglob
쉘 옵션을 설정하는 경우dotglob
bash
shopt -s extglob dotglob
그러면 패턴은 가 아닌 디렉토리 example/!(.env)
와 일치합니다 .example
.env
숨겨진 이름에 대해 와일드카드 패턴 일치를 허용하도록 설정해야 합니다 dotglob
.
사용
rm -f example/!(.env)
일치하는 이름을 삭제하려고 합니다.
패턴이 너무 많은 이름으로 확장되면 "매개변수 목록이 너무 김" 오류가 발생합니다. 간단한 루프에서 실행하는 것은 대체 솔루션입니다.
for name in example/!(.env); do rm -f "$name"; done
관련 질문: