在Windows中创建的tar.gz无法在Linux下正确解压-ArchiverFactory / org.rauschig.jarchivelib.Archiver

时间:2018-08-23 13:19:09

标签: java linux tar

我在我的工具(Java)中使用 ArchiverFactory / org.rauschig.jarchivelib.Archiver https://rauschig.org/jarchivelib/examples.html 在必须在linux下解压缩的Windows下创建tar.gz存档,但是文件树出了点问题。

例如,我要压缩文件夹test /,其中包含 测试/a.txt test / b.txt

Archiver archiver = ArchiverFactory.createArchiver(ArchiveFormat.TAR,CompressionType.GZIP);
archiver.create("archive", new File(path/to/dir/test), new File(output/path));

所以我有archive.tar.gz,其中包含(在Windows上)一个目录测试和该目录中的2个文件(a.txt和b.txt):

/test/a.txt
/test/b.txt

但是在Linux上解压缩相同的归档文件后(tar -xvf archive.tar.gz),我有一个空目录(测试)和2个文件,它们的目录和文件名都带有斜杠“ /”:

/test/
/test\a.txt
/test\b.txt

我在Windows下的所有路径中都使用“ /”,也尝试了“ \\”,但没有成功。在Linux上解压缩看起来像这样:

ubuntu@ubuntu:~/Desktop/temp$ tar -xvf archive.tar.gz 
test/
test\\a.txt
test\\b.txt

此斜杠/反斜杠怎么了?

1 个答案:

答案 0 :(得分:0)

好的,这是库问题...我使用的是0.7.1,但最近更新为0.8.0时,此问题已修复;)所以,请始终使用最新版本!