我试图用一些文件制作一个 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
/ gz
tandem。添加正确的文件后缀也是一个好习惯:
- 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 中弹出