如何从 ext2/ext3 文件系统上的稀疏文件中删除一些块

2024-04-28

当您写入稀疏文件时,ext2/ext3 文件系统会自动分配块,但是当我不再需要其中的某些块时,我发现没有办法做到这一点。感觉就像使用 malloc() 而不使用 free()。 是否可以“释放”稀疏文件的某些块?如果是的话,怎么样? 不要告诉我将其复制到新文件中。这太无聊了并且需要大量的磁盘空间。


从 Linux 2.6.38 开始,有一个标志fallocate http://www.man7.org/linux/man-pages/man2/fallocate.2.html called FALLOC_FL_PUNCH_HOLE它应该做你想要的,即在任意位置释放文件空间。

fallocate(fd, FALLOC_FL_PUNCH_HOLE|FALLOC_FL_KEEP_SIZE, offset, len);

将在描述符 fd 指示的文件中打一个洞。该洞将从offset并且有长度len,均以字节为单位。实际上只会删除整个块,部分块将被清零。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 ext2/ext3 文件系统上的稀疏文件中删除一些块 的相关文章

  • 是否可以找到哪个用户位于 localhost TCP 连接的另一端?

    这是一个编程问题 但它是 Linux Unix 特定的 如果我从本地主机获得 TCP 连接 是否有一种简单的方法可以告诉哪个用户在 C 程序内建立了连接而无需 shell 我知道这对于 Unix 域套接字来说并不太难 我已经知道远程 IP
  • 为什么使用Python的os模块方法而不是直接执行shell命令?

    我试图了解使用Python的库函数执行特定于操作系统的任务 例如创建文件 目录 更改文件属性等 背后的动机是什么 而不是仅仅通过执行这些命令os system or subprocess call 例如 我为什么要使用os chmod而不是
  • 使用 C++ 输出字符串覆盖 Linux 终端上的最后一个字符串

    假设我有一个命令行程序 有没有办法让我说的时候 std cout lt lt stuff 如果我不做std cout lt lt n 在另一个之间std cout lt lt stuff 东西的另一个输出将覆盖同一行上的最后一个东西 清理行
  • 如何使用libaudit?

    我试图了解如何使用 libaudit 我想接收有关使用 C C 的用户操作的事件 我不明白如何设置规则 以及如何获取有关用户操作的信息 例如 我想获取用户创建目录时的信息 int audit fd audit open struct aud
  • 测试linux下磁盘空间不足

    我有一个程序 当写入某个文件的磁盘空间不足时 该程序可能会死掉 我不确定是否是这种情况 我想运行它并查看 但我的测试服务器不会很快耗尽空间 有什么办法可以嘲笑这种行为吗 看起来没有任何方法可以在 Ubuntu 中设置文件夹 文件大小限制 并
  • 使用 sed 将 old-link-url 替换为 new-link-url

    我正在 bash 中编写一个脚本 将 old link url 替换为 new link url 我的问题是 sed 由于斜杠而无法替换 url 如果我只输入一些文字就可以了 my code sed e s old link new lin
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • 远程linux服务器到远程linux服务器大型稀疏文件复制 - 如何?

    我有两台 CentOS 5 4 服务器 每台服务器上都安装了 VMware Server 假设我始终对 vmware 虚拟机使用稀疏文件 将虚拟机文件从一台服务器复制到另一台服务器的最可靠 最快速的方法是什么 虚拟机的文件复制起来很痛苦 因
  • Linux 文本文件操作

    我有一个格式的文件 a href a href a href a href 我需要选择 之后但 之前的文本 并将其打印在行尾 添加后 例如 a href http www wowhead com search Su a a a a a
  • 如何获取本地文件系统上 docker 容器生成的内容(最小失败示例)

    这个问题是另一个问题的最小失败版本 如何获取本地文件系统上docker容器生成的内容 https stackoverflow com questions 34924011 how to get contents generated by a
  • Gradle 1.3:build.gradle 不构建类

    这里有一个新问题 我有一个 build gradle 文件apply plugin java在其中 并与 java 项目 包关联 当我跑步时gradle build从命令行我得到 compileJava UP TO DATE process
  • 在 shell 脚本中查找和替换

    是否可以使用 shell 在文件中搜索然后替换值 当我安装服务时 我希望能够在配置文件中搜索变量 然后在该值中替换 插入我自己的设置 当然 您可以使用 sed 或 awk 来完成此操作 sed 示例 sed i s Andrew James
  • 无关的库链接

    我有一个可能有点愚蠢的问题 因为我很确定我可能已经知道答案了 假设你有静态库A 动态共享库B和你的linux下的程序C 假设库 A 调用库 B 中的函数 并且您的程序调用库 A 中的函数 现在假设 C 在 A 中调用的所有函数都不使用 B
  • 进程名称长度的最大允许限制是多少?

    进程名称允许的最大长度是多少 我正在读取进程名称 proc pid stat文件 我想知道我需要的最大缓冲区 我很确定有一个可配置的限制 但就是找不到它在哪里 根据man 2 prctl http man7 org linux man pa
  • 如果 DirectoryInfo.GetFiles().Length 超过 Int32.MaxValue 怎么办?

    由另一个question https stackoverflow com questions 3766540 error on maximum number of files 3767265 3767265关于文件夹中的最大文件数 我注意到
  • 如何从linux命令行运行.exe可执行文件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 Windows 中有一个 abc exe 可执行文件 我可以使用 DOS 命令提示来执行此应用程序 并为其提供一些运行时变量 我想从
  • Scrapy FakeUserAgentError:获取浏览器时发生错误

    我使用 Scrapy FakeUserAgent 并在我的 Linux 服务器上不断收到此错误 Traceback most recent call last File usr local lib64 python2 7 site pack
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b

随机推荐

  • 是否有使用严格求值的 Haskell 编译器或预处理器?

    我正在寻找一个默认使用严格求值而不是惰性求值的 Haskell 编译器 我只想使用 OCaml 但 Haskell 的语法是好多了比 OCaml 的 Haskell 是纯粹的 并且具有很酷的功能 例如类型类 我真的不想经常把 s and 我
  • Unity3D 中 android 切换速度太慢

    我的游戏有 1000 多个帧 并且精灵的格式是 Crunch 因为这个项目中的精灵太多 当我想从Windows切换到Android时 我花了将近1天的时间来切换 实际上我不允许它完全切换 但切换到Windows并没有那么多 也许只有15分钟
  • ShareLinkContent .setContentTitle()、.setContentDescription()、.setImageUrl() 已弃用

    Facebook 开发者网站表示 自 2017 年 4 月 18 日起 Graph API 2 9 及更高版本不再支持以下参数 对于 2 8 及更低版本 这些参数将持续有效到 2017 年 7 月 17 日 1 一个contentTitle
  • 如何在 Linux 上使用 Python 导出

    我需要在 Python 中进行这样的导出 export MY DATA my export 我尝试过这样做 python mode coding utf 8 import os os system export MY DATA my exp
  • 删除两个元素将数组平均分成三部分,时间复杂度为 O(n)

    我遇到一个问题 让您删除数组中的两个元素以使三部分的总和相等 Ex 1 2 4 3 5 2 1 After I drop the 4 and 5 it becomes 1 2 3 2 1 限制条件 1 Numbers are all int
  • 如何在 MS Access 中填充字段描述

    当通过 ODBC 尤其是 AS 400 链接到外部数据源时 我经常会在另一端遇到神秘的字段名称 而数据字典不可用 在极少数情况下 我能够从其他数据库获取字段描述 我希望能够一次导入它们 而不是一次将每个描述复制 粘贴到表设计表单中 我无法在
  • 如何从 Twitter 按钮获取“仅推文计数”

    我一直在看http dev twitter com pages tweet button build your own example http dev twitter com pages tweet button build your o
  • 我什么时候应该使用 UdpClient.BeginReceive?我什么时候应该在后台线程上使用 UdpClient.Receive?

    从本质上讲 除了明显的区别之外 它们之间还有哪些区别 我什么时候应该使用哪种形式 class What public Go Thread thread new Thread new ThreadStart Go2 thread Backgr
  • scala:用重载来修饰我的库

    有什么想法为什么以下不起作用 implicit def listExtensions A xs List A new ListExtensions xs class ListExtensions A xs List A def foreac
  • 如何从代理类中检索代理类?

    我将 Hibernate 与代理一起使用 并且获得属于以下类的对象test DBUser EnhancerByCGLIB 40e99a2d 是否有 Hibernate 方法来检索基类 test DBUser在这种情况下 来自代理class
  • 具有更多注入 EJB 实例的无状态 EJB

    我知道无状态 EJB 存储在池中并根据需要进行实例化 我的问题是 当存在更多 EJB 依赖项时会发生什么 例如如下所示 Remote Stateless public class Master EJB EJB private EJB A e
  • Ruby 中 shell 命令的颜色输出

    这是一个简单的 Ruby 脚本 puts ls laG 在 OS X 的 ls 中 G 代表颜色 当在 bash 下运行时 我得到颜色输出 当从 Ruby 脚本运行上述代码时 我在结果输出中看不到颜色或 ANSI 转义序列 根据我所读到的内
  • awk 排序多维数组[重复]

    这个问题在这里已经有答案了 GNU awk 支持多维数组 gnu org software gawk manual gawk Arrays of Arrays q 1 1 dog q 1 2 999 q 2 1 mouse q 2 2 77
  • C# 中如何实现引用返回?

    既然 C GC 可以移动内存 那么如何实现引用返回呢 下面的代码会导致 未定义的行为 吗 public struct Record public int Hash public VeryLargeStruct Data public cla
  • 在 hasRole 中使用 spring:eval

    我在 JSP 中显示属性文件中的某些属性 如下所示
  • 无法在 Struts 中加载配置

    我正在尝试在在线考试中实现 STRUTS Spring 和 HIBERNATE 集成 使用 apache tomcat 7 0 42 在 Eclipse Kepler 中运行项目时 它会抛出以下错误 HTTP Status 404 Onli
  • Typescript深度替换多种类型

    我将 mongodb 与 types mongodb 一起使用 这为我提供了一个很好的 FilterQuery 接口 用于我的 mogodb 查询形状文档集合 在我的域对象类中 我有一些额外的逻辑 例如将日期转换为时刻对象或将浮点数转换为
  • 需要澄清应用程序域

    我需要对这个主题进行一些澄清 因为我刚刚遇到将 swf 加载到重用加载器对象中的问题 假设我有 3 个 SWF 主文件 swfchildA swfchildB swf Main swf 中有一个可重用的加载程序对象 myloader loa
  • 选择项目后 jQuery UI 自动完成触发新事件

    我正在使用 jQuery UI 自动完成 并且尝试实现一些代码 一旦用户从自动完成下拉列表中选择了一个项目 它就会调用另一个函数 我查看了 API 文档 但进展甚微 Call LookUpGroupName ActionResult in
  • 如何从 ext2/ext3 文件系统上的稀疏文件中删除一些块

    当您写入稀疏文件时 ext2 ext3 文件系统会自动分配块 但是当我不再需要其中的某些块时 我发现没有办法做到这一点 感觉就像使用 malloc 而不使用 free 是否可以 释放 稀疏文件的某些块 如果是的话 怎么样 不要告诉我将其复制