Linux
為什麼我的 tar 文件比它的內容大?
我有一個 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 檔案總是至少比原始文件大一點。