Я знаю, что вы можете сделать -W при создании архива, но как вы проверяете и уже созданный архив? tvWf говорит, что это неверный архив tar?
$ mkdir tmp
$ echo asdkfjh > tmp/a
$ echo qweroiu > tmp/b
$ ls
tmp
$ tar cvf archive.tar tmp
tmp/
tmp/a
tmp/b
$ tar tvWf archive.tar
tar: This does not look like a tar archive
tar: Skipping to next header
tar: VERIFY FAILURE: 1 invalid header detected
tar: Error exit delayed from previous errors
То же самое происходит и с tar 1.15 (который является системным значением по умолчанию для centos 5) и с 1.26 (который является самой новой версией от gnu).
t
в одиночку просто перечисляет содержимое архива. Я хочу убедиться, что файлы в tar имеют то же содержимое, что и оригиналы (все еще в файловой системе), что, как я думал,W
должно быть (верно?).tar tvWf t.tar
tar: --verify cannot be used with -t
:tar (GNU tar) 1.27.1
У GNU
tar
есть--compare
опция. Подробности смотрите в разделе « Сравнение элементов архива с файловой системой » в документации.источник
tar -df /path/to/archive.tar.bz2
будут отображаться различия между файлами в архиве и файловой системе, сопоставляя относительные пути в архиве с текущим рабочим каталогом.Йорг Шиллингс
star
имеет опцию diff , которая позволяет сравнивать файлы в архиве tar с их оригиналом. Вы можете указать, что следует понимать как разницу.Обратите внимание, что он упоминается
testfile
как разного размера и данных. Если бы я не исключил время (включая время доступа!), Оно также указало бы время доступа, а также перечислило бы все файлы, время которых изменилось, просто посмотрев их.С момента гибели BerliOS,
star
можно найти на SourceForge . Он очень компактен и безболезненно компилируется в большинстве unixoid-систем и unixoid-аналогах.источник
schilytools
пакете исходного кода.