특정 날짜 사이에 수정 된 파일을 제거하는 방법은 무엇입니까?


12

주제에서와 같이 : 특정 날짜 범위에서 수정 된 디렉토리의 파일을 제거하고 싶습니다. 어떻게해야합니까?

답변:


18

명령 GNU find은 갈 길입니다. 예를 들어, 8 월 1 일에서 5 일 사이에 현재 디렉토리의 모든 파일을 삭제하려면 다음 명령을 사용할 수 있습니다.

find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete

-delete먼저 관심없는 파일 목록을 보려면 조치 없이 명령을 실행 하는 것이 좋습니다 ( -lsls와 유사한 목록을 생성하는 것이 좋습니다 ).

-maxdepth 1스펙을 제거하면 모든 서브 디렉토리도 순회합니다.

예를 들어 시간을 지정할 수도 있습니다.

find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
                         ! -newermt '2011-08-06 23:01:00' -delete

날짜와 시간 사이의 공백을 보호하는 작은 따옴표를 제거하지 않도록주의하십시오.

캐릭터 !는 부정입니다.이 날짜는 최신이지만 다른 날짜는 최신이 아닙니다 .


답변 감사합니다. 시간 범위를 선택하기 위해 무언가를 사용할 수 있습니까? 그리고 '!'는 무엇입니까? 사용 ?
Patryk

!하지 않은 것입니다. 이 예에서 : 2011-08-06보다 최신이 아닙니다.
혼동

@lordmonkey : 답변에서 내 편집 내용보기
enzotib

3
+1. 나는 술어를 삭제했다. 필요하지 않을 수도 있지만 추가 할 것 -type f입니다.
Michał Šrajer

@ Michał Šrajer :에 대한 좋은 팁 -type f입니다. (가) -delete는 GNU 확장이다, 나는 생각한다.
enzotib
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.