우리 모두는 파일을 삭제하기 위해 이 보안 옵션을 사용할 수 있다는 것을 알고 있습니다.
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
.