특정 날짜 이후 수정된 파일 이동

특정 날짜 이후 수정된 파일 이동

특정 날짜(예: 7일) 이후에 수정된 파일을 다른 디렉터리로 어떻게 이동합니까? 서투르게 출력을 보내보았습니다

ls -t | head -n XX

하지만 최근에 ls를 구문 분석하는 것이 좋은 생각이 아니라는 것을 알게 되었습니다.

답변1

당신 말이 맞아요. 구문 분석을 피하는 것이 가장 좋습니다 ls. 이에 비해 아래 솔루션은 find가장 어려운 파일 이름도 처리할 수 있습니다.

7일 이내에 수정된 현재 디렉토리의 모든 파일을 이동하려면 /destination/path다음을 사용하십시오.

find . -mindepth 1 -maxdepth 1 -mtime -7  -exec mv -t /destination/path {} +

어떻게 작동하나요?

  • find . -mindepth 1 -maxdepth 1

    현재 디렉터리에 속한 파일을 찾습니다(현재 디렉터리 자체는 검색하지 않음).

  • -mtime -7

    이는 find파일만 선택하라는 메시지입니다.미만칠일.

  • -exec mv -t /destination/path {} +

    이는 find실행 mv명령에 해당 파일을 /destination/path.

    이는 많은 파일 이름이 find대체되므로 생성해야 하는 프로세스 수가 적기 때문에 효율적입니다 .{} +mv

    모든 버전이 mv-t옵션을 지원하는 것은 아닙니다. GNU mv(리눅스)는 그렇습니다.

관련 정보