디렉터리에서 30일보다 오래된 파일을 삭제하고 싶지만 현재 있는 디렉터리 아래의 디렉터리에서는 삭제하지 않으려고 합니다.
답변1
파일을 삭제하기 전에 목록을 나열하려면:
find . -maxdepth 1 -mtime +30 -type f -ls
파일을 삭제하려면:
find . -maxdepth 1 -mtime +30 -type f -exec rm {} +
~와 함께
.
현재 디렉토리 지정-maxdepth 1
최대 1개 수준의 디렉터리로 내려갑니다.-mtime +30
마지막으로 수정된 날짜가 30일을 초과한 파일만-type f
일반 파일만
답변2
zsh 쉘에는특별한 와일드카드 확장 기능그게 도움이 될 거예요.
현재 디렉터리에서 30일보다 오래된 파일을 나열합니다.
ls -d -- *(.m+30)
현재 디렉터리에서 30일보다 오래된 파일을 제거합니다.
rm -- *(.m+30)
zsh 구문은 *(.m+30)
다음을 의미하는 와일드카드입니다.
*
-- 임의의 파일 이름( ... )
-- 한정자로....
-- 일반 파일(디렉토리 등이 아님)m+30
-- 수정 시간이 30일 이상 전입니다.