如何模拟删除文件? (Linux)的
发布时间:2021-03-18 22:01:16 所属栏目:Linux 来源:网络整理
导读:为了运行一些测试,我需要运行一个删除文件的应用程序 由于每次我需要运行另一个测试时重新创建此文件( 40 GB)都很昂贵,我想模拟删除此文件. 但这必须对删除它的应用程序完全透明.这意味着创建一个符号链接不是一个好的解决方案([-L symlink]返回0而[-L file]
为了运行一些测试,我需要运行一个删除文件的应用程序 由于每次我需要运行另一个测试时重新创建此文件(> 40 GB)都很昂贵,我想模拟删除此文件. 但这必须对删除它的应用程序完全透明.这意味着创建一个符号链接不是一个好的解决方案([-L symlink]返回0而[-L file]返回1,所以这对于app来说不是完全透明的). 解决方法有几种解决方案. dd喜欢解决方案可能需要一些时间,但使用搜索dd of=mybigfile bs=1 count=0 seek=40G 是即时的.然而这个命令占用的40g空间在df中看不到… 所以最好的可能是 fallocate -l 40g mybigfile 这会立即创建mybigfile,并且该空间实际上是从FS保留的(并且在df中可见) – 评论后编辑 – 硬链接怎么样? cd data make 40g file "myfile" 然后进行每次测试 cd ../test ln ../data/myfile testfile command to unlink testfile 数据和测试目录在同一个FS(不同的目录,以防止错误等). 硬链接状态非常透明,不太可能被应用程序测试. unlink操作将删除与inode关联的名称,然后递减inode中的链接计数器,并且应该非常快(仅当inode计数器降至零时才会释放文件及其数据 – 这不会发生除非你取消链接data / myfile). (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |