首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Linux中,“假定位--挖洞”和“假定位--穿孔孔”有什么区别?

在Linux中,“假定位--挖洞”和“假定位--穿孔孔”有什么区别?
EN

Unix & Linux用户
提问于 2017-09-04 12:49:29
回答 2查看 3.3K关注 0票数 9

我完全理解--dig-holes在本地创建一个稀疏文件。也就是说,如果文件有漏洞,--dig-holes选项将删除这些漏洞:

让我们以一种非常简单的方式来看待它,比方说,我们有一个名为非稀疏的大型文件:

非稀疏的:

代码语言:javascript
运行
复制
aaaaaaaaaaaaaaaaaaaaaaaaaaaa
\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00
bbbbbbbbbbbbbbbbbbbbbbbbbbbb
\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00
cccccccccccccccccccccccccccc

非稀疏中有许多零,假设交错零以千兆字节为单位.fallocate --dig-holes去分配实际文件大小保持不变(保留)的零(洞)可用空间。

现在,有了--punch-hole,它到底做了什么?我读了手册页,还是不明白:

代码语言:javascript
运行
复制
-p, --punch-hole
              Deallocates space (i.e., creates a hole) in the byte  range
              starting at offset and continuing for length bytes.  Within
              the specified range, partial filesystem blocks are  zeroed,
              and  whole  filesystem  blocks  are  removed from the file.
              After a successful call, subsequent reads from  this  range
              will  return  zeroes.

创建洞,这与--dig-hole选项相反--看起来是这样的,为什么挖洞不等于挖洞呢?!帮助!我们需要一个逻辑学家:)。

这两个选项的命名在语言上是同义的,这可能会造成混淆。

--dig-holes--punch-holes在操作上有什么区别(请不要在逻辑上或语言上!)

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-09-04 13:03:46

--dig-holes不会像读取文件时所确定的那样更改文件的内容:它只是标识可以用漏洞替换的0的运行。

--punch-hole使用--offset--length参数在文件中打孔,不管该偏移量包含什么:即使文件中包含非零,但文件的内容会因此发生变化。考虑到您的示例文件,运行fallocate --punch-hole --offset 2 --length 10将将10个a字符替换为零,从第二个字符之后开始。

票数 13
EN

Unix & Linux用户

发布于 2017-09-04 13:03:12

简言之:

  • --dig-holes在不修改其内容的情况下使文件稀疏(如读取它的程序所看到的)。
  • --punch-hole在文件中创建一个漏洞,可能会修改现有数据。

不同之处在于,--dig-holes分析可以使文件稀疏的区域(如果提供的话,使用--offset--length来指示要分析的文件中的范围),而--punch-holes则使用--offset--length实际上将文件的一部分为零以创建一个洞。

还请注意复数“挖洞”与单数“穿孔”。

来自手册,关于--dig-holes

您可以将此选项考虑为执行cp --sparse,然后将目标文件重命名为原始文件,而不需要额外的磁盘空间。

票数 11
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/390248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档