Gostaria de adicionar um comentário ao post de @Steve Kehlet, mas precisa de 50 representantes (RIP).
Para qualquer pessoa que encontrou esta postagem por meio de várias pesquisas no Google, encontrei uma maneira de não apenas encontrar arquivos específicos em um intervalo de tempo, mas também NÃO incluir os caminhos relativos OU espaços em branco que causariam erros de tarring. (MUITO OBRIGADO, STEVE.)
find . -name "*.pdf" -type f -mtime 0 -printf "%f\0" | tar -czvf /dir/zip.tar.gz --null -T -
.
diretório relativo
-name "*.pdf"
procure pdfs (ou qualquer tipo de arquivo)
-type f
o tipo a procurar é um arquivo
-mtime 0
procure os arquivos criados nas últimas 24 horas
-printf "%f\0"
Regular -print0
OU -printf "%f"
NÃO funcionou para mim. Das páginas de manual:
Esta citação é realizada da mesma maneira que para GNU ls. Este não é o mesmo mecanismo de cotação usado para -ls e -fls. Se você for capaz de decidir qual formato usar para a saída de find, normalmente é melhor usar '\ 0' como terminador do que usar nova linha, pois os nomes dos arquivos podem conter espaços em branco e caracteres de nova linha.
-czvf
criar arquivo, filtrar o arquivo através do gzip, listar detalhadamente os arquivos processados, nome do arquivo
Editar 14-08-2019: gostaria de acrescentar que também fui capaz de usar essencialmente o mesmo comando em meu comentário, apenas usando o próprio tar:
tar -czvf /archiveDir/test.tar.gz --newer-mtime=0 --ignore-failed-read *.pdf
Necessário --ignore-failed-read
no caso de não haver novos PDFs para hoje.
find ... | xargs ...
é usar o / -0 parâmetro -print0 em cada:find -print0 ... | xargs -0 ...
. Isso fará com que os nomes dos arquivos sejam separados por um caractere nulo, o que significa que você pode ter espaços ou novas linhas ou outras coisas estranhas em seus nomes de arquivo e ainda funcionará.