在 Linux 伺服器上使用 tar 壓縮文件

在 Linux 伺服器上使用 tar 壓縮文件

我試圖用一些文件製作一個 zip 文件,但當我解壓縮 zip 時,我只得到 1 個文件。

tar cfvz test.zip file1.mp3 file2.mp3 file3.jpg

在我提取 test.zip 後,我只得到一個「測試」檔案。文件3.jpg"

答案1

這對我有用:

$ tar -czvf test.tar.gz ./file1 ./file2 ...

$ tar -tzf test.tar.gz
./file1
./file2

# to extract do:
$ tar -xzf test.tar.gz

傳遞f選項後,您應該給出正在建立的存檔的檔案名稱。

哦,如果您使用zip解壓縮文件,您將不會獲得目錄,但會獲得 tarball。 Tarball 包含您的所有文件。使用:

tar -xf test

您應該會看到所有文件。

如果你想擁有普通的zip 文件,使用zip命令而不是tar/ gztandem。加入正確的文件後綴也是好習慣:

  • tar 與 gzip (即tar czvf ...): filename.tar.gz
  • tar 和 bzip2 (即tar cjvf ...): filename.tar.bz2
  • 不壓縮的 tar (即tar cvf ...): filename.tar

答案2

首先,即使您將壓縮檔案命名為.zip,它也不是 ZIP 文件,而是 TAR 和 GZIP 文件,因此要使用的正確文件副檔名是.tar.gz.tgz

現在,您用來解壓縮壓縮檔案的命令是什麼?如果您使用 ZIP 實用程序,它可能會被副檔名混淆,並且僅解壓縮檔案而不解壓縮它。這可以解釋為什麼結果是單一文件,實際上是一個 TAR 文件。如果您使用 untar 公用程式(或命令tar -xf test),您應該從內部取回所有檔案。

答案3

要提取您應該執行的文件

tar xvfz test.zip 

預設情況下,所有檔案都會從相對於您所在位置的路徑中彈出,因此如果 test.zip 包含 myfile.txt dir1/myfile.txt 這兩個檔案都會從 zip 中彈出

相關內容