Найдите все файлы, которые были изменены за прошлые 30 дней и помещали их в TAR

Таким образом, у нас есть Сервер Подготовки без Мерзавца или любой другой инструмент управления версиями.

Теперь мы хотим продвинуть изменения в живой системе.

Я думал о find, использование -exec.

Я пробую это: find . -type f -mtime -30 -exec tar -czf changed.tar.gz {} \;

Но это только добавляет последний файл. Я хочу к ADD это к changed.tar.gz вместо того, чтобы полностью перезаписать его. Как я могу сделать это?

2
задан 15 March 2017 в 13:59

1 ответ

Вместо использования exec:

find . -type f -mtime -30  -exec tar -czf changed.tar.gz {} \;

Вы можете pipe кому: tar использование --files-from=- и --null:

find . -mtime -30 -type f -print0  | tar czf changed.tar.gz --files-from=- --null

- пустой указатель

       -T reads null-terminated names, disable -C

- T,
- файлы - из ФАЙЛА

       get names to extract or create from FILE

В примере выше, входное имя файла - - вход от pipe

Вы можете также pipe это использование xargs

find . -type f -mtime -30 -print | xargs tar -czf changed.tar.gz
2
ответ дан 2 December 2019 в 03:41

Другие вопросы по тегам:

Похожие вопросы: