폴더를 제외한 특정 유형의 파일 삭제

폴더를 제외한 특정 유형의 파일 삭제

makefile내 for에는 다음 명령이 있습니다 clean.

rm -rf */*.o */*.cmo */*.cmi */*.cmx */*.cma */*.cmxa */*.annot

cleanpartial이제 폴더 frontend/와 폴더 내의 파일을 제외하고 이러한 파일을 삭제하는 파일을 작성하고 싶습니다 frontend/gen/.

이 명령을 올바르게 작성하는 방법을 아는 사람이 있습니까?

답변1

이것을 사용해야합니다 find.

다음 명령을 사용하여 안전하게 테스트할 수 있습니다.

find . \( -name frontend -prune \) -o -type f \( -name \*.o -o -name '*.cm[oixa]' -o -name \*.cmxa -o -name \*.annot \) -print

인쇄된 파일 목록에 만족하면 실제 명령을 실행하여 많은 파일을 삭제합니다.

find . \( -name frontend -prune \) -o -type f \( -name \*.o -o -name '*.cm[oixa]' -o -name \*.cmxa -o -name \*.annot \) -exec rm -f {} +

관련 정보