find를 사용하여 여러 파일을 검색하고 모두 삭제하고 싶습니다. -exec 사용.

find ./ -type f -name fileA -o -name fileB -exec rm {} \; 

시도했지만 fileAs가 아닌 “fileB”파일 만 제거하는 것 같습니다.

댓글

  • " fileB , 우연히.
  • @Wildcard 직선이 아닙니다. rm ('는 시도하지만 실패합니다. ).
  • @Kusalananda, 아, 맞습니다.

답변

-o도 작업에 적용되므로 다음 항목을 그룹화해야합니다.

find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \; 

BTW, find 구현은 -delete도 지원할 수 있습니다.

find ./ -type f \( -name fileA -o -name fileB \) -delete 

댓글

  • 그렇지 않으면 ' -exec rm {} +

답변

다른 대안 :

 WARNING: it is possible that due to funny characters in directory names it is possible that unintended files might be deleted. find ./ -type f \( -name fileA -o -name fileB \) -print | xargs rm -f 

또는 가능한 경우 재미있는 문자가있는 파일 :

 NOTE: On some systems -print0 and -0 options are not available. But this would be the preferred and safer method) find ./ -type f \( -name fileA -o -name fileB \) -print0 | xargs -0 rm -f 

댓글

  • 거의 1 년 후 파일 이름에 대한 메모를 추가하기 위해 '의 헌신을 추가하는 방법이 마음에 듭니다. : D

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다