Come si verifica un archivio tar già scritto?


15

So che è possibile eseguire -W durante la creazione di un archivio, ma come si verifica l'archivio già creato? tvWf dice che non è un archivio tar valido?

$ 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

La stessa cosa accade sia con tar 1.15 (che è l'impostazione predefinita del sistema su centos 5) sia 1,26 (che è la versione più recente di gnu).

Risposte:


8

Non puoi usarlo Wcon 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

Credo che tda solo sia sufficiente per testare l'archivio.


tda solo elenca solo il contenuto dell'archivio. Voglio verificare che i file nel tar abbiano lo stesso contenuto degli originali (ancora nel file system), che pensavo fosse quello che Wdovrebbe fare (giusto?).
cespinoza,

1
Lo fa solo quando si scrive l'archivio. Se vuoi assicurarti che il contenuto sia un byte per la corrispondenza dei byte dovrai estrarlo da qualche parte e diff / sommare i file.
EightBitTony,

Non per me: tar tvWf t.tar tar: --verify cannot be used with -t:tar (GNU tar) 1.27.1
Tom Hale

14

GNU tarha --compareun'opzione. Per i dettagli, consultare la sezione Confronto dei membri dell'archivio con la sezione File system della documentazione.


5
Ad esempio tar -df /path/to/archive.tar.bz2mostrerà le differenze tra i file nell'archivio e il filesystem, risolvendo i percorsi relativi nell'archivio rispetto alla directory di lavoro corrente.
Walf

3

Joerg Schillings starmette in mostra un diff opzione, che è in grado di confrontare i file in un archivio tar con il loro originale. È possibile indicare ciò che dovrebbe essere riconosciuto come differenza.

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).

Si noti che ha menzionato testfiledati e dimensioni diverse. Se non avessi escluso i tempi (incluso il tempo di accesso!), Avrebbe indicato anche il tempo di accesso, ed elencato anche tutti i file i cui tempi erano cambiati semplicemente guardandoli.

Dalla scomparsa di BerliOS, starpuò essere trovato su sourceforge . È altamente portatile e si compila indolore sulla maggior parte dei sistemi unixoid e sosia unixoid.


Le fonti recenti sono nel schilytoolspacchetto sorgente.
schily,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.