Tar

您如何驗證已寫入的 tar 存檔?

  • April 25, 2021

我知道您可以在創建存檔時執行 -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 的最新版本)。

你不能使用Wwith 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

我相信t僅此一項就足以測試存檔。

GNUtar有一個--compare選擇。有關詳細資訊,請參閱文件的將存檔成員與文件系統部分進行比較。

引用自:https://unix.stackexchange.com/questions/15472