Додав би коментар до публікації @Steve Kehlet, але потрібно 50 повторів (RIP).
Для тих, хто знайшов цю публікацію через численні гуглінг, я знайшов спосіб не тільки знайти конкретні файли з урахуванням часового діапазону, але і НЕ включити відносні шляхи АБО пробіли, які могли б спричинити помилки таргетування. (ДЯКУЄТЕ ТАКОЖ СТОЛОМ.)
find . -name "*.pdf" -type f -mtime 0 -printf "%f\0" | tar -czvf /dir/zip.tar.gz --null -T -
.
відносний каталог
-name "*.pdf"
шукайте pdfs (або будь-який тип файлу)
-type f
тип шукати - це файл
-mtime 0
шукайте файли, створені за останні 24 години
-printf "%f\0"
Регулярно -print0
АБО -printf "%f"
НЕ працював для мене. З чоловічих сторінок:
Це цитування виконується так само, як і для GNU ls. Це не той самий механізм котирування, який використовується для -ls та -fls. Якщо ви можете вирішити, який формат використовувати для виводу знаходження, тоді зазвичай краще використовувати "\ 0" як термінатор, ніж використовувати новий рядок, оскільки імена файлів можуть містити пробіл та символи нового рядка.
-czvf
створити архів, відфільтрувати архів через gzip, дослівно перелічити файли, що обробляються, ім’я архіву
Редагувати 2019-08-14: Я хотів би додати, що я також міг використовувати фактично таку ж команду у своєму коментарі, просто використовуючи tar:
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 ...
. Це призведе до того, що назви файлів будуть розділені нульовим символом, а це означає, що у ваших іменах можуть бути пробіли, нові рядки або інші дивні речі, і вони все одно працюватимуть.