특정 폴더 아래의 파일 및 폴더를 삭제하는 방법

특정 폴더 아래의 파일 및 폴더를 삭제하는 방법

우리 모두는 파일을 삭제하기 위해 이 보안 옵션을 사용할 수 있다는 것을 알고 있습니다.

  find /path/to/directory/ -mindepth 1 -mtime +5 -delete

/path/to/directory/ 폴더 아래의 폴더와 파일을 삭제하려면 어떻게 해야 합니까? 구문은 무엇이어야 합니까?

삭제 옵션은 비어 있지 않은 폴더를 삭제할 수 없습니다.

 find /var/tmp -type d -mindepth 1 -mtime +5 -delete
 find: warning: you have specified the -mindepth option after a non-option    argument -type, but options are not positional (-mindepth affects tests   specified before it as well as those specified after it).  Please specify  options before other arguments.

 find: cannot delete `/var/tmp/foreman-ssh-cmd-1b987fef-10ca-4204-bf4b-441f28a3db07': Directory not empty
 find: cannot delete `/var/tmp/foreman-ssh-cmd-2687d337-2b60-4f20-b581-a70807c22cb9': Directory not empty
 find: cannot delete `/var/tmp/foreman-ssh-cmd-faedbb3a-7756-4c96-8a40-a4a2001b5fb3': Directory not empty

답변1

어떤 옵션도 사용하지 않았 -type으므로 제공된 기준(정확히 여기에 있음)과 일치하는 모든 항목 이 파일, 디렉터리(비어 있는 경우) 등 무엇이든 find제거됩니다( ).-delete-mindepth 1 -mtime +5

빈 디렉터리만 삭제하려는 경우:

find /path/to/directory/ -mindepth 1 -type d -mtime +5 -delete

삭제하려는 파일을 실제로 삭제하기 전에 검토하는 것이 가장 좋습니다. 삭제 -delete:

find /path/to/directory/ -mindepth 1-type d -mtime +5

완전성을 위해 파일과 디렉터리만 검색하려면 다음 위치에 OR 구조를 삽입하세요 find.

find /path/to/directory/ -mindepth 1 \( -type f -o -type d \) -mtime +5 

비어 있지 않은 디렉토리도 삭제하려면 다음을 rm사용하십시오 -exec.

find /path/to/directory/ -mindepth 1 \( -type f -o -type d \) -mtime +5 -exec rm -r {} +

-f필요한 경우 추가하십시오 rm.

관련 정보