이름으로 디렉토리를 재귀적으로 검색하고 그 안의 모든 일반 파일을 삭제하는 방법

이름으로 디렉토리를 재귀적으로 검색하고 그 안의 모든 일반 파일을 삭제하는 방법

저는 다음을 수행해야 하는 AWS EC2 인스턴스(RHEL 포크)에 bash 스크립트를 작성하고 있습니다.

  1. 이름이 지정된 모든 "_combined"디렉토리 검색${PROJECT_DIR}
  2. 이 모든 디렉터리에 있는 모든 일반 파일을 삭제하세요. 디렉터리 자체는 삭제하지 마세요.

이를 수행하는 가장 좋은 방법은 무엇입니까?

답변1

그처럼

find "$PROJECT_DIR" -path "*/_combined/*" -type f

이 내용이 올바른 경우:

find "$PROJECT_DIR" -path "*/_combined/*" -type f -delete

물론 이는 .dll뿐만 아니라 전체 트리의 모든 일반 파일에 영향을 미칩니다 _combined.

답변2

이것은 당신이 설명하는 것을 할 것입니다. 당신이 있을 때틀림없이작동합니다. -print해당 절을 다음으로 바꾸십시오 -delete.

find "$PROJECT_DIR" -type d -name '_combined' -execdir find '_combined' -maxdepth 1 -type f -print \;

그것이 하는 일은 _combined아래에 명명된 모든 디렉터리를 검색하고 각 디렉터리에서 발견된 디렉터리 내의 디렉터리가 아닌 모든 디렉터리를 삭제하는 $PROJECT_DIR두 번째 조각을 실행하는 것입니다 .find

관련 정보