gpt4 book ai didi

使用 tar 查找差异的 c 代码

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:39 25 4
gpt4 key购买 nike

我需要编写一个 C 程序来找出两个文件夹 folder1 和 folder2.tar 之间的差异,并用 folder1 更新 folder2.tar 的内容。所以我使用 tar --diff 实用程序命令编写如下:

#include <unistd.h>
#include <stdio.h>
main()
{
system("tar df folder2.tar folder1 > file.patch");
system("tar uf folder2 folder1"); //Assume folder2 is the extracted version of folder2.tar
}

这里我有几个问题:

  1. 首先,我无法将文件夹内容的差异放入单独的文件中。我只得到文件夹中修改后的文件名和修改时间
  2. 其次,由于文件夹中的文件较多,修改folder1中的随机文件后,我们如何指定路径以仅更新folder2.tar中的特定文件?
  3. 我们如何编写上述场景的代码?

任何想法!!!!!如果你有的话请帮助我!谢谢

最佳答案

试试这个:

tar xf folder2.tar
diff -rq folder1 folder2

然后您可以从 diff 的输出中获取修改后的文件名,并将它们传递给 tar -u。随意将其包装在 system() 中,这样您就可以将其称为 C 程序,但我建议您将其设为 bash 脚本:更小、更快,并且在进行更改时无需重新编译。

关于使用 tar 查找差异的 c 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com