AIX Unix - 시작 문자와 끝 문자가 있는 날짜 기간 동안 생성된 파일을 찾고 삭제하는 방법은 무엇입니까?

AIX Unix - 시작 문자와 끝 문자가 있는 날짜 기간 동안 생성된 파일을 찾고 삭제하는 방법은 무엇입니까?

저는 명령 옵션이 제한된 IBM AIX Unix를 사용하고 있습니다. find 및 mtime(유효) 옵션을 사용하여 다음 필터 조건을 달성하고 싶습니다. 다음 필터에 나열된 파일을 삭제하고 싶습니다.

  • 숫자 [0-9]로 시작하는 파일
  • ".dat"로 끝남
  • 기간: 2018년 8월 1일부터 2018년 10월 15일까지

find 명령을 사용해 보았지만 별로 도움이 되지 않았습니다.

 find /mydirectory -type f -mtime -45 -mtime +5 

답변1

find명령은 다음을 찾습니다.파일이나 그런 것그리고콘텐츠가 마지막으로 수정된 지 45일이 지나지 않았습니다.그리고콘텐츠가 마지막으로 수정된 지 5일이 넘었습니다.. ("AND"는 데이터 세트를 제한하는 것이지 증폭하는 것이 아닙니다. 원하는 경우 "that are also"로 읽을 수 있습니다.)

절대 날짜 범위와 일치했다고 가정하면 이제 지정한 조건 집합을 완료하는 절을 추가하기만 하면 됩니다.

find /mydirectory -type f -mtime -45 -mtime +5 -name '[0-9]*' -name '*.dat'

약간의 최적화를 통해 이 두 가지 명명 표준은

  • 숫자 [0-9]로 시작하는 파일
  • ".dat"로 끝남

단일 명령문으로 결합할 수 있습니다.

  • glob과 일치하는 파일("쉘 와일드카드 패턴")[0-9]*.dat

마지막으로 "일치하는 파일 삭제“Action을 구현하는 데 사용할 수 rm -f있으며 이를 통해 필요한 솔루션을 찾을 수 있습니다.

find /mydirectory -type f -mtime -45 -mtime +5 -name '[0-9]*.dat' -exec echo rm -f {} \;

예상대로 파일이 선택되는 것을 보면 인쇄하는 대신 echo명령이 실행되도록 명령에서 제거하는 것을 기억하십시오.rm.

답변2

날짜가 고정되어 있으면 날짜와 관계없이 해당 범위의 수정 날짜가 있는 파일을 삭제하겠다는 의미입니다.언제명령을 실행한 다음 사용할 수 있습니다.touch주문하다참조 파일을 생성하고find~의 -newer술어 제한 결과:

touch -t 201807312359.59 /tmp/oldest-file
touch -t 201810152359.59 /tmp/newest-file
find /mydirectory -type f -newer /tmp/oldest-file ! -newer /tmp/newest-file -name '[0-9]*.dat' -exec rm {} \;

관련 정보