ind /home/backup/ -maxdepth 1 -type f ! -name 'origin.tar.gz' ! -name 'origin.sql' -mtime +7 -exec rm {} \;
먼저 find 명령어 관련하여
-maxdepth n
서브디렉토리를 들어가서 검색하는 범위를 지정 할 때에 사용합니다.
해당 폴더만 검색하는 경우는 -maxdepth 를 1로 주시면 됩니다.
-type
f는 파일 d는 디렉토리만 검색합니다.
-name
해당 파일명/디렉토리명에 대해서 검색합니다.
두개 이상의 파일 이름을 지정할 때에는 or 나 not 옵션을 붙이시면 됩니다.
or 는 -o 옵션을 주시면 되고, not 은 ! 옵션을 주시면 됩니다.
예를 들어 origin.tar.gz 와 origin.sql 를 검색하고자 하는 경우
-name 'origin.tar.gz' -o -name 'origin.sql'
origin.tar.gz 와 origin.sql 를 제외하고 검색하고자 하는 경우
! -name 'origin.tar.gz' ! -name 'origin.sql'
로 옵션을 지정하시면 됩니다.
-mtime n
n*24 시간 이전에 수정된 파일들에 대해 검색합니다.
-exec [명령어] {}
검색결과를 {} 안에 넣어서 해당 명령어를 수행합니다.
따라서 질문자님께서 말씀하신 내용을 수행하시려면 다음과 같이 실행하시면 됩니다.
find /home/backup/ -maxdepth 1 -type f ! -name 'origin.tar.gz' ! -name 'origin.sql' -mtime +7 -exec rm {} \;