符号链接和 7zip

Fir*_*cer 21 windows symbolic-link 7-zip

我正在尝试将文件夹压缩为 .7z 存档。此文件夹包含指向文件夹外其他一些内容(目录和文件)的符号链接。

显然 7zip 只是存档链接本身,这不是我想要的。有没有办法告诉 7zip 我希望它存档它链接到的内容,而不是链接本身?(也就是说,如果有foo指向的符号链接名称C:\stuff\foo,我希望它包含C:\stuff\foo存档中的目录代替 foo,而不是 0 字节符号链接。))

除了添加有问题的文件和文件夹之外,还有其他合理的解决方法吗?大约有 10,000 个文件通过符号链接引用,因此单独添加它们需要几个小时......也许有一个程序可以创建一个包含真实文件的临时文件夹,然后将其传递给 7zip。或者只是一个可以更好地处理符号链接的归档器。

我正在运行 Windows Vista。所有的链接都是符号链接(例如用mklink link target和创建mklink /D link target)。

编辑:

dir 较小测试目录的命令输出:

C:\...>dir
 Volume in drive C is OS
 Volume Serial Number is 0A3D-CD6E

 Directory of C:\...

09/04/2010  18:12    <DIR>          .
09/04/2010  18:12    <DIR>          ..
09/04/2010  18:10               975 real file.txt
09/04/2010  18:11    <SYMLINK>      test file.txt [..\test file.txt]
               2 File(s)            975 bytes
               4 Dir(s)   5,214,355,456 bytes free
Run Code Online (Sandbox Code Playgroud)

使用 7zip 创建 7z 存档会导致real file.txt包含在内,但test file.txt会添加为 0 字节文件,尽管链接到的文件确实存在并且是 50KB。

sle*_*ske 14

显然 7zip 只是归档了它自己的链接,这不是我想要的。有没有办法告诉 7zip 我希望它也归档它链接的东西,而不是它自己的链接

不,显然不是(不幸的是)。实际上有一个关于 7zip 的错误报告要求这个:http : //sourceforge.net/tracker/? func=detail&aid=2846755&group_id=14481&atid=114481 但它是在 2009 年 8 月打开的,自 :-/ 以来没有被触及。

如果失败,除了添加有问题的文件和文件夹之外,还有什么合理的吗?包括通过符号链接的东西,有 10 000 个文件,其中很大一部分是通过符号链接,所以单独添加它们需要几个小时......

好吧,如果你有足够的空间(和时间),你可以复制文件夹,用它们的目标替换符号链接。例如,您可以使用Robocopy及其开关/sl

/sl 复制符号链接而不是目标


注意: 为了避免混淆,请注意p7zip的 Linux 版本(7zip 的端口)也有一个二进制文件7z支持将符号链接指向的文件存档(switch -l)。但是,Windows 上的 7zip 没有这个开关。


Mic*_*ger 5

截至 2019 年,7-Zip 已在 Windows 中解决了此问题。最新版本有一个复选框,可以在 TAR 和 WIM 档案中包含符号链接,效果很好!

在 TAR 中存储符号链接

在 WIM 中存储符号链接

  • 注意:为了获取目标文件/目录(而不是链接),您需要清除该复选框,而不是勾选它。 (5认同)
  • tar 和 wim 会复制文件/目录,但不压缩。因此,压缩后,您可以将 tar 文件压缩为 .zip 或 .7z。结果比先复制到新目标要容易一些。 (2认同)