1년 내의 모든 파일을 한 번에 가져와 보관하는 데 사용할 수 있는 명령을 알고 싶습니다. 나는 2007년부터 현재까지의 파일이 포함된 72,000개의 파일이 포함된 디렉토리에서 작업하고 있습니다. 연도 그룹의 이전 파일을 tar-bzip으로 압축하여 더 쉽게 관리할 수 있기를 바랍니다. 따라서 모든 문서는 2007년 1월 1일부터 2007년 12월 31일까지입니다. 당신의 도움을 주셔서 감사합니다!
답변1
당신은 그것을 사용할 수 있습니다find
주문하다문서를 선택하세요수정 시간을 기준으로.
cd /path/to/directory
find -type f -newermt 2007-01-01 ! -newermt 2008-01-01
이렇게 하면 사용자 시간대에서 2007년에 생성된 파일과 연도 변경 시 타임스탬프가 자정인 파일이 이전 연도와 그룹화됩니다.
find
CentOS 버전이 지원되지 않는 이전 버전인 경우 , 대신 Fencepost 파일을 -newermt
사용할 수 있습니다 .-newer
touch -d 2007-01-01 /tmp/2007-01-01
touch -d 2008-01-01 /tmp/2008-01-01
find -type f -newer /tmp/2007-01-01 ! -newer /tmp/2008-01-01
파일 이름에 개행 문자가 포함되어 있지 않다고 가정하면 결과 목록을 입력으로 전달할 수 있습니다.tar
옵션을 사용하십시오 -T
( -T -
표준 입력에서 파일 이름을 읽는다는 의미).
cd /path/to/directory
find -type f -newermt 2007-01-01 ! -newermt 2008-01-01 |
tar -cjf /elsewhere/2007.tar.bz2 -T -
( tar -cJf /elsewhere/2007.tar.xz
반대로 xz는 더 빠르게 압축을 풀고 더 잘 압축하지만 압축을 위해 더 많은 메모리가 필요합니다.)