7z:-r 标志起什么作用?

7z:-r 标志起什么作用?

手册页7z简单地说

不要使用“-r”,因为这个标志不能达到您所想的效果。

我能找到的唯一文献基本上重述了同样的事情。

   -r[-|0]
          Recurse subdirectories (CAUTION: this flag does not do what  you
          think, avoid using it)

所以呢它确实做了什么?为什么本文档的作者认为我认为它做了其他事情?

这是 Debian Squeeze 上的 7zip 9.04(相当旧)。

答案1

摘自 7-Zip 用户手册 (chm)

指定在命令行上处理通配符和文件名的方法。

在此处输入图片描述

答案2

直到今天我才完全明白这面旗帜7z.exe的作用是什么-r,并相信这是正确的答案,也是作者神秘注释背后的含义。

在我的脚本中使用时,7z.exe我使用了-r很多,直到我发现一个存档有一堆子文件夹(但我没有指定!)。然后我意识到,对于我在命令行中指定的一个文件,7z.exe决定查看与我的文件所在位置相邻的所有子文件夹。虽然我没有在目标文件中指定任何文件夹,但7z.exe决定查看所有子文件夹,并发现一些同名文件深深嵌套在其中一个文件夹中。您可以通过文本“扫描驱动器”看到它正在执行此操作,并且在执行 zip 之前会遍历所有子文件夹。解决方案是只使用-r0- 只要您指定文件夹/文件名的任意组合和没有通配符, 它会仍然递归添加您指定的任何文件夹对象,但不再尝试扫描当前位置周围/旁边的整个文件系统。我相信这就是作者所说的“此标志不会按您的想法执行,请避免使用它”。

相关内容