我有一个包含三个文件的目录test,ls -l test:
total 8
-rw-r--r-- 1 mb mb 16 Jul 25 11:12 regular_file
-rwxr-xr-x 1 mb mb 19 Jul 25 11:02 script.sh
lrwxrwxrwx 1 mb mb 12 Jul 25 11:14 symlink -> regular_file它包含一个常规文件、一个符号链接和一个可执行脚本。
在用tar -czf test.tgz test/归档这个目录之后,我想用7-Zip提取这三个文件:
7z x -tgzip test.tgz && 7z x -ttar test.tar不幸的是,7-Zip没有生成原始文件:脚本失去了它的可执行位,symlink不再是一个符号链接,而是包含文本regular_file的文件。
total 12
-rw-r--r-- 1 mb mb 16 Jul 25 11:12 regular_file
-rw-r--r-- 1 mb mb 19 Jul 25 11:02 script.sh
-rw-r--r-- 1 mb mb 12 Jul 25 12:16 symlink另一方面,我可以提取文件的权限和符号链接完好无损地使用
tar -xzf test.tgz有什么方法可以让7-Zip在存档之前提取文件吗?
7-Zip版本为16.02。我在Arch Linux 5.7.7上。
下面是:用tar创建的归档文件。
发布于 2020-07-25 11:20:58
从这些bug报告来看,这似乎是7-Zip的一个限制:
现在,我将继续使用tar -xzf test.tgz来提取文件。
发布于 2021-03-13 16:51:42
实际上,在7z手册页中提到,对于Unix系统,权限不是由7-Zip存储的:
在Linux/Unix上,备份和限制不使用7 zip格式进行备份,因为- 7-zip不存储文件的所有者/组。在Linux/Unix上,为了备份目录,必须使用tar:
如果您想将文件和目录(而不是文件的所有者)发送给其他Unix/MacOS/Windows用户,您可以使用7-zip格式。示例: 7za是一个目录,7z目录不使用"-r“,因为这个标志不像您想的那样。不要因为“”而使用目录/*。文件(例如:“目录/”与“目录/..profile”不匹配)
因此,您应该能够与TAR一起使用所有者/组状态。
https://unix.stackexchange.com/questions/600282
复制相似问题