c код, чтобы найти различия, используя tar - PullRequest
0 голосов
/ 05 марта 2012

Мне нужно написать программу на C для поиска различий между двумя папками folder1 и folder2.tar и обновить содержимое folder2.tar папкой1.Поэтому я написал с помощью утилиты 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. Во-вторых, как будет много файлов в папках, и после изменения случайного файла в папке 1, как мы указываем путь для обновления только этого конкретногофайл в folder2.tar?
  3. Как написать код для вышеуказанного сценария?

Любая идея !!!!!Пожалуйста, помогите мне, если у вас есть так!Спасибо

1 Ответ

1 голос
/ 05 марта 2012

Попробуйте это:

tar xf folder2.tar
diff -rq folder1 folder2

Затем вы можете получить измененные имена файлов из вывода diff и передать их в tar -u. Не стесняйтесь обернуть его в system (), чтобы вы могли назвать его программой на C, но я бы посоветовал вам сделать его скриптом bash: меньше, быстрее, и вам не нужно перекомпилировать при внесении изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...