我在我的工具(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
此斜杠/反斜杠怎么了?
答案 0 :(得分:0)
好的,这是库问题...我使用的是0.7.1,但最近更新为0.8.0时,此问题已修复;)所以,请始终使用最新版本!