在 Linux 服务器上使用 tar 压缩文件

在 Linux 服务器上使用 tar 压缩文件

我试图用一些文件制作一个 zip 文件,但当我解压 zip 时,我只得到 1 个文件。

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

在我提取 test.zip 后,我只得到一个“测试”文件。zip 大小还可以,我只是不知道如何进行这项工作,以便在提取时我得到相同的文件:“file1.mp3文件2.mp3 文件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 中弹出

相关内容