@Steve Kehlet 게시물에 댓글을 추가 할 수 있지만 50 명의 담당자 (RIP)가 필요합니다.
수많은 인터넷 검색을 통해이 게시물을 찾은 사람을 위해 특정 시간 범위에서 특정 파일을 찾을뿐만 아니라 tarring 오류를 유발할 수있는 상대 경로 나 공백을 포함하지 않는 방법을 찾았습니다. (정말 감사합니다.)
find . -name "*.pdf" -type f -mtime 0 -printf "%f\0" | tar -czvf /dir/zip.tar.gz --null -T -
.
상대 디렉토리
-name "*.pdf"
PDF (또는 모든 파일 형식)를 찾습니다.
-type f
찾을 유형은 파일입니다.
-mtime 0
지난 24 시간 동안 생성 된 파일 찾기
-printf "%f\0"
정규 -print0
OR -printf "%f"
는 나를 위해 작동하지 않았습니다. man 페이지에서 :
이 인용은 GNU ls와 같은 방식으로 수행됩니다. 이것은 -ls 및 -fls에 사용되는 것과 동일한 인용 메커니즘이 아닙니다. find 출력에 사용할 형식을 결정할 수 있다면 일반적으로 파일 이름에 공백과 개행 문자가 포함될 수 있으므로 개행 문자를 사용하는 것보다 종결 자로 '\ 0'을 사용하는 것이 좋습니다.
-czvf
아카이브 생성, gzip을 통해 아카이브 필터링, 처리 된 파일을 상세하게 나열, 아카이브 이름
편집 2019-08-14 : 추가하고 싶습니다. 타르 자체를 사용하여 기본적으로 동일한 명령을 내 의견에 사용할 수도 있습니다.
tar -czvf /archiveDir/test.tar.gz --newer-mtime=0 --ignore-failed-read *.pdf
--ignore-failed-read
오늘날 새로운 PDF가없는 경우에 필요 합니다.
find ... | xargs ...
은 각각에 -print0 / -0 매개 변수를 사용하는 것find -print0 ... | xargs -0 ...
입니다. 이렇게하면 파일 이름이 널 문자로 구분됩니다. 즉, 파일 이름에 공백이나 줄 바꿈 또는 기타 이상한 내용이있을 수 있으며 여전히 작동합니다.