我想得到仅有的使用 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/