- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在创建一个 zip 存档,其中包含两个位于不同路径的相同文件。 zip 存档格式是否支持类似于 Unix 硬链接(hard link)概念的东西?我的意思是能够只存储文件一次(节省空间),但将该数据 blob 索引到 zip 存档中的两个不同路径。
如果文件格式确实支持此功能,我该如何使用 Ubuntu 中的免费工具创建这样的存档?
最佳答案
正如@Greg 所说,ZIP 不支持硬链接(hard link)。
但是如果我没理解错的话,你的目的是减少压缩包的大小。因此,让我们考虑一个替代解决方案。
让我们运行简单的测试来检查不同存档库的压缩率。我创建了两个相同的二进制文件并使用 ZIP、BZ2、RAR 和 7z 压缩它们。
8641969 test.bin
8641969 test2.bin
第一次只压缩了一个文件。第二次压缩两个文件:
压缩包:
$zip -9 test1.zip test.bin
$zip -9 test2.zip test.bin test2.bin
8636837 test1.zip
17273654 test2.zip
BZIP2:
$export BZIP=--fast
$tar cjf test1.tbz test.bin
$tar cjf test2.tbz test.bin test2.bin
8694997 test1.tbz
17389167 test2.tbz
7z:
$7z a -mx=9 test1.7z test.bin
$7z a -mx=9 test2.7z test.bin test2.bin
8705285 test1.7z
8707054 test2.7z
压缩包:
$rar a -m5 test1.rar test.bin
$rar a -m5 test2.rar test.bin test2.bin
8649970 test1.rar
17299916 test2.rar
结论:似乎只有 7z 做得很好。考虑在您的应用程序中使用它。
当然,您需要在您的环境中使用您的文件进行更多测试,以查看它是否真的是您所需要的。您还可以使用选项来查看您获得最佳压缩比/速度平衡的压缩级别。
关于ubuntu - zip 存档中是否可以使用硬链接(hard link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8859616/
我是 git 的新手,所以问题可能很简单,git reset --hard HEAD 和 git reset --hard 有什么区别? 最佳答案 HEAD 在您未指定该参数时是隐含的。 但是,您可以
为了恢复工作树和索引中的更改,此答案 ( https://stackoverflow.com/a/5812972/8278160) 建议运行以下命令: git reset --hard 运行它是否与运
这个问题在这里已经有了答案: What's the difference between HEAD^ and HEAD~ in Git? (17 个答案) 关闭 6 年前。 git reset --
我在 Stackoverflow/elsewhere 上尝试了很多链接来正确理解 的行为 git reset --hard option 我知道: 如果它被省略或者它是 origin,则在 origi
只是一个简短的问题。我想知道是否有一个选项或开关可以启用重新加载按钮下的“硬重新加载”和“清空缓存和硬重新加载”选项而无需打开devtools,以便它们始终弹出,即使devtools没有开放。 我知道
我最近在 Chrome 中发现了这个新功能: 我可以找出选项 1 和选项 3 之间的区别,选项 2 可能介于两者之间,但我在任何地方都找不到更精确的信息。 有人知道这 3 个选项的确切行为吗? 最佳答
我正在寻找一种很好的简单方法来查找哪些扇区占用给定文件。我的语言偏好是 C#。 从我的 A-Level Computing 类(class)中,我了解到硬盘驱动器在磁盘的前几 KB 上有一个查找表。在
我相信这是一个被分配的值并且这是无法改变的。一个例子是: int limit =5; for(int i =0 ; i
有些程序可以从硬盘恢复已删除的文件,也有一些程序会覆盖可用空间以防止已删除的文件被恢复。 覆盖可用空间的行为似乎是可以理解的。该程序创建文件并向其中写入任意字节。 但是,当谈到读取已删除的文件时,我感
Python 中有几种用于分割的包和方法。但是,如果我先验地知道某些像素(而不是其他像素)对应于特定对象,我如何使用它来分割其他对象? 哪些在 python 中实现的方法适用于这种方法? 谢谢。 最佳
我试图找到一个文件,然后在不同的目录中创建一个具有相同名称的硬链接(hard link)。但这不起作用,如果我使用 -exec 并在关闭后显示一个结果。我已经让它与 cp 一起工作,但我决定改用硬链接
我想知道是否可以在 Linux 上识别文件(或链接)是否是硬链接(hard link)。例如,如果我创建了: dd if=/dev/urandom bs=1024 count=10000 of=fil
在上次提交后,我的团队认为远程变得太繁重了,最好做一个新的来在 Assets 测试(重 repo )和功能测试(轻 repo )之间拆分任务。所以我做了一个 push --mirror 并创建了一个新
我不确定我是否遇到了默认超时(我可以在某处设置它吗?),但也许我错过了一些东西。当客户端的浏览器建立 websocket 连接时,我保持持久性。然后,在断开连接时,我删除该持久对象。足够简单。当客户端
我正在编写一个备份脚本,它使用硬链接(hard link)来不占用未修改文件的空间。 我想检查给定的文件系统(根据特定目录确定)是否在脚本的开始 支持硬链接(hard link) - 否则,它可能会中
我需要在运行时为路径长度超过 255 个字符的文件创建硬链接(hard link)(这是针对令人恼火的 Excel/Word 2011 限制的解决方法)。但由于稍后可能会再次打开同一个文件,如果我已经
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我的作业要求我访问 test.txt 文档,因此文件名必须硬编码到我的 C 驱动器。我不知道硬编码是什么意思。有人可以帮我解决这个问题吗? 最佳答案 “硬编码”意味着将某些内容放入源代码中。如果您不进
我刚开始玩 Git,想知道一个具体案例: 我错误地做了一个沉重的提交,更糟糕的是我将它推送到远程服务器。 现在我正在尝试使用 git reset --hard v1.0 和 git push -f o
对于 Unix cp,您可以使用 --link 选项。当与文件夹一起使用时,它将 hard link涉及的文件而不是复制,示例 cp --recursive --link foo bar 这在某些情况
我是一名优秀的程序员,十分优秀!