Zaten yazılmış bir katran arşivini nasıl doğrularsınız?


15

Bir arşiv oluştururken -W yapabileceğinizi biliyorum, ancak arşivi nasıl doğrulayıp oluşturdunuz? tvWf geçerli bir katran arşivi olmadığını söylüyor?

$ 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

Aynı şey hem tar 1.15 (centos 5'teki sistem varsayılanı) hem de 1.26 (gnu'nun en yeni sürümü) ile olur.

Yanıtlar:


8

Sen kullanamazsınız Wile t.

mkdir tmp
echo bdb > tmp/a
echo bdb > tmp/b

tar cvf archive.tar tmp
tmp/
tmp/a
tmp/b

ls -l archive.tar
-rw-r--r-- 1 tony tony 10240 Jun 23 05:57 archive.tar

tar tvf archive.tar
drwxr-sr-x tony/tony         0 2011-06-23 05:57 tmp/
-rw-r--r-- tony/tony         4 2011-06-23 05:57 tmp/a
-rw-r--r-- tony/tony         4 2011-06-23 05:57 tmp/b

tar tvWf archive.tar
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

tArşivi test etmek için tek başına yeterli olduğuna inanıyorum .


tsadece arşivin içeriğini listeler. Katrandaki dosyaların orijinallerle aynı içeriğe sahip olduğunu doğrulamak istiyorum (hala dosya sisteminde), ne Wyapmam gerektiğini düşündüm (doğru?).
cespinoza

1
W bunu sadece arşivi yazarken yapar . İçeriğin bayt eşleşmesi için bir bayt olduğundan emin olmak istiyorsanız, bir yere çıkartmanız ve dosyaları dağıtmanız / toplamanız gerekir.
EightBitTony

Benim için değil tar tvWf t.tar tar: --verify cannot be used with -t::tar (GNU tar) 1.27.1
Tom Hale


3

Joerg Schillings starbir spor fark onların orjinali ile tar arşivi dosyaları karşılaştırabilir seçeneği. Neyin fark olarak tanınması gerektiğini belirtebilirsiniz.

0 1 newt pts/1 ~ 17> :> tmp/testfile
0 1 newt pts/1 ~ 19> star -cz tmp > tmp.tar
0 1 newt pts/1 ~ 19> echo bla > tmp/testfile
0 1 newt pts/1 ~ 20> star -z -diff diffopts=not,times < tmp.tar
diffopts=perm,symperm,type,nlink,uid,gid,uname,gname,size,data,rdev,hardlink,symlink,sympath,sparse,dir,acl,xattr,fflags
tmp/testfile: different size,data
star: 115 blocks + 0 bytes (total of 1177600 bytes = 1150.00k).

testfileFarklı boyut ve verilerden bahsedildiğini unutmayın . Eğer zamanları (erişim süresi dahil!) Hariç tutmamış olsaydım, erişim zamanını da belirtirdi ve aynı zamanda zamanlarına göre değişen tüm dosyaları da listeleyebilirdim.

BerliOS'un ölümünden beri, sourceforge'dastar bulunabilir . Oldukça portatiftir ve çoğu unixoid sistemde ve unixoid benzerleri ağrısız bir şekilde derler.


Son kaynaklar schilytoolskaynak paketindedir.
schily
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.