찾기 + 특정 폴더에만 존재하는 파일 삭제 방법 [닫기]

찾기 + 특정 폴더에만 존재하는 파일 삭제 방법 [닫기]

폴더 아래의 파일을 삭제하려면 다음 방법을 사용하여 찾을 수 있습니다.

find /home -type f -delete

그런데 임시 폴더 아래에 있는 파일만 재귀적으로 삭제하는 방법은 무엇입니까?

다음과 같은 임시 경로 예제가 있다고 가정합니다.

/home/bla/bla/temp
/home/test/temp
/home/subf/subf/subf/temp
.
.
.
/home/1/temp

temp디렉터리 아래의 파일 만 삭제하도록 찾기 구문을 변경하는 방법

목표는 find 명령을 사용하여 임시 폴더만 일치시키고 임시 디렉토리 아래의 파일을 삭제하는 것입니다.

답변1

 find /home -type f -delete

삭제하지 마세요문서, 삭제됩니다일반 파일단, fifo, 장치, 디렉터리, 심볼릭 링크, 소켓 등을 포함한 다른 모든 유형의 파일은 제외됩니다.

유형을 제외한 모든 파일을 삭제하려는 경우목차, 맨 디렉토리 트리만 남기는 ! -type d대신 이것을 사용할 수 있습니다 -type f.

이름이 지정된 디렉터리 또는 그 아래에 있는 디렉터리가 아닌 모든 파일을 삭제하려면 temp다음을 수행할 수 있습니다.

LC_ALL=C find /home -path '*/temp/*' ! -type d -delete

답변2

임시 폴더를 삭제하고 다시 만들 수도 있습니다.

function delete-and-recreate() {
    rm -r $1
    mkdir $1
}

delete-and-recreate $(find . -name temp -type d)

관련 정보