연령별로 파일 삭제


16

N 일 동안 수정되지 않은 디렉토리의 모든 파일을 삭제하는 명령이 있습니까? 오래된 로그를 정리해야합니다.

답변:


24

이렇게하면 5 일이 지난 모든 파일이 삭제 -name '*log'되므로 더 정확하게 입력 할 수 maxdepth있으며 find 명령에도 a를 지정할 수 있습니다.

find /some/dir -type f -mtime +5 -delete


5
현명한 sysadmins는 그들이 원하는 것을 삭제하지 않도록하기 위해 -ls대신에 dry-run을 합니다 -delete. 그렇습니다, 여기에서 경험에서 말하십시오.
Shadur

2
경험에서 말하면, 그들은 또한 그들의 길을 확인합니다. 내가 한 번 / some/dir/버전을 한 이후로 . :(
Hennes

3

with zsh(.m+n) glob 한정자 : .일반 파일 만 선택하고, n 일 전에 m+n수정 된 파일을 선택합니다 . 예를 들어, 9 일 전에 수정 된 현재 디렉토리의 파일을 나열하십시오.

print -rl -- *(.m+9)

D도트 파일을 포함하도록 추가 하십시오.

print -rl -- *(D.m+9)

또는 되풀이하려는 경우 (예 .log:로 끝나는 파일 만 나열 ) :

setopt extendedglob
print -rl -- **/*.log(.m+9)

대신 print -rlrm당신이 결과에 만족하는 경우; 인수 목록이 너무 길지zargs 않도록 파일이 많은 경우 사용해야 할 수도 있습니다 .

autoload zargs
zargs ./**/*(.m+9) -- rm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.