Linux

為什麼我的 tar 文件比它的內容大?

  • June 1, 2013

我有一個 tar 文件,它是從兩個文件重新創建的 - xaa、xab(使用 split 命令的結果)。tar 文件是我期望的大小,但是當我提取它時,我得到的文件夾是 tar 文件大小的一小部分。有關我的命令序列,請參閱下面的終端輸出。不幸的是,我沒有原始的 tar 文件或文件夾 - 所以這是我恢復這些數據的唯一機會。當我在“文件滾輪”中打開存檔時,我看到的文件夾與提取後在命令行中看到的文件夾相同,這些只是我希望看到的文件的一個子集。誰能建議這可能是為什麼?

~> cat xa* > archive
~> file archive
archive: POSIX tar archive (GNU)
~> ls -la archive
-rw-r--r-- 1 hugo users 24471439360 Jun  1 18:50 archive
~> tar xf archive
~> cd repos
~/repos> du --max-depth 0 -h
83M .
~/repos> cd ../
~> tar cf newarchive repos
~> ls -la newarchive
-rw-r--r-- 1 hugo users 53288960 Jun  1 19:57 newarchive

提取 tar 文件,直到找到指示 tar 文件結束的標記: 從物理上講,歸檔由一系列文件條目組成,這些條目由歸檔結束條目終止,該條目由來自 tar的兩個 512 零字節塊組成文件格式說明在這裡

因此,您的存檔文件可能在未提取的標記之後包含材料。

聽起來您要提取到的磁碟沒有足夠的可用空間來儲存 tar 存檔中的所有文件和目錄。檢查df -k .您提取文件的目錄。

有時,如果您 tar 文件中帶有“漏洞”,您將獲得一個比原始文件大得多的 tar 存檔文件。此外,tar 存檔文件包含元數據、文件名、權限、所有權等,以及文件數據。所以一個 tar 檔案總是至少比原始文件大一點。

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