폴더 아래의 파일을 삭제하려면 다음 방법을 사용하여 찾을 수 있습니다.
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)