提取目录的增量更改

提取目录的增量更改

我想得到仅有的使用 OSX 上的命令行工具对单个目录进行差异备份(在持续集成服务上运行)

基本上,我有一个充满东西的目录(文件和带有文件和子目录的子目录,...),以及一个向该目录添加更多东西的工作。作业完成后,我想提取作业添加的所有新文件。 (工作是brew安装一些附加软件/usr/local;我想提取所有额外的安装的软件)。

在Linux上,我会使用GNU-tar这样的东西:

 tar --create --file /dev/null --listed-incremental=data.snar ${BACKUPDIR}
 # run the job
 ...
 tar -cz --file backup.tgz --listed-incremental=data.snar ${BACKUPDIR}

不幸的是,这是在 OSX 上,所以我只有BSD-tar缺少--listed-incremental标志的。

我还考虑过使用rsync, ,例如:

rsync --delete --backup --backup-dir=backup.0 -a ${BACKUPDIR} /tmp/backup/
# run the job
...
rsync --delete --backup --backup-dir=backup.1 -a ${BACKUPDIR} /tmp/backup/

但是,这似乎没有达到我的预期:如果作业删除文件,这些文件最终会出现在 指定的目录中--backup-dir,但我从未见过仅有的作业添加的文件...

我真的很想有一个解决方案不是要求我安装任何附加软件(包括 GNU-tar),因为这很可能会干扰我想要获取差异的实际数据目录 ( /usr/local/)。

答案1

在 macOS 上使用 GNU tar。它基于相同的来源。 http://macappstore.org/gnu-tar/

相关内容