Как сравнить содержание двух tarball

Еще один хороший метод: сначала создайте новый пакет с нужным именем, щелкнув правой кнопкой мыши по папке java -> new ->.

Затем выберите и перетащите все свои классы в новый пакет ,

Наконец, удалите старый пакет.

Готово.

Еще одна важная вещь

При использовании этого метода вы должны вручную изменить файл манифеста Android и файл градиента в новый пакет.

30
задан myjpa 23 June 2009 в 03:50
поделиться

4 ответа

tarsum - это почти то, что вам нужно. Возьмите его вывод, прогоните его через sort, чтобы получить одинаковый порядок для каждого, а затем сравните два с помощью diff. Это должно дать вам базовую реализацию, и было бы достаточно легко перенести эти шаги в основную программу, изменив код Python для выполнения всей работы.

3
ответ дан 28 November 2019 в 00:13
поделиться

Если вы не извлекаете архивы и не нуждаетесь в различиях, попробуйте опцию diff -q :

diff -q 1.tar 2.tar

Это тихий результат будет "1.tar 2.tar отличаются" или ничем, если нет различий.

0
ответ дан Alastair 11 October 2019 в 14:02
поделиться

Вы контролируете создание этих файлов tar?
Если так, то лучшим приемом было бы создание контрольной суммы MD5 и сохранение ее в файле внутри самого архива. Затем, когда вы хотите сравнить два файла, вы просто извлекаете эти файлы контрольной суммы и сравниваете их.


Если вы можете себе позволить извлечь только один файл tar , , вы можете использовать --diff параметр tar для поиска различий с содержимым другого tar-файла.


Еще один грубый трюк , если вас устраивает только сравнение файла имена файлов и их размеры .
Помните, что это не гарантирует, что другие файлы такие же!

выполните tar tvf , чтобы перечислить содержимое каждого файла и сохранить выходные данные в двух разных файлах. затем вырежьте все, кроме столбцов имени файла и размера. Желательно также отсортировать два файла. Затем просто выполните сравнение файлов между двумя списками.

Просто помните, что эта последняя схема на самом деле не вычисляет контрольную сумму.

Пример tar и вывод (все файлы имеют нулевой размер в этом примере).

$ tar tvfj pack1.tar.bz2
drwxr-xr-x user/group 0 2009-06-23 10:29:51 dir1/
-rw-r--r-- user/group 0 2009-06-23 10:29:50 dir1/file1
-rw-r--r-- user/group 0 2009-06-23 10:29:51 dir1/file2
drwxr-xr-x user/group 0 2009-06-23 10:29:59 dir2/
-rw-r--r-- user/group 0 2009-06-23 10:29:57 dir2/file1
-rw-r--r-- user/group 0 2009-06-23 10:29:59 dir2/file3
drwxr-xr-x user/group 0 2009-06-23 10:29:45 dir3/

Команда для сгенерировать отсортированный список по имени / размеру

$ tar tvfj pack1.tar.bz2 | awk '{printf "%10s %s\n",$3,$6}' | sort -k 2
0 dir1/
0 dir1/file1
0 dir1/file2
0 dir2/
0 dir2/file1
0 dir2/file3
0 dir3/

Вы можете взять два таких отсортированных списка и сравнить их.
Вы также можете использовать столбцы даты и времени, если это вам подходит.

11
ответ дан 28 November 2019 в 00:13
поделиться

tardiff то, что вы ищете? Это «простой сценарий Perl», который «сравнивает содержимое двух архивов и сообщает обо всех обнаруженных между ними различиях»

2
ответ дан 28 November 2019 в 00:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: