查找过去 30 天内更改过的所有文件并将其放入 TAR 中

查找过去 30 天内更改过的所有文件并将其放入 TAR 中

因此我们有一个没有 Git 或任何其他版本控制工具的暂存服务器。

现在我们要将变化推送到实时系统。

我正在考虑find,使用-exec

我正在尝试这个: find . -type f -mtime -30 -exec tar -czf changed.tar.gz {} \;

但它只添加了最后一个文件。我想将其添加到该文件,changed.tar.gz而不是完全覆盖它。我该怎么做?

答案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,
--files-来自文件

       get names to extract or create from FILE

在上面的例子中,输入文件名是-- 来自的输入pipe

您还可以pipe使用xargs

find . -type f -mtime -30 -print | xargs tar -czf changed.tar.gz

相关内容