加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

如何模拟删除文件? (Linux)的

发布时间:2021-03-19 07:45:27 所属栏目:Linux 来源:网络整理
导读:为了运行一些测试,我需要运行一个删除文件的应用程序 由于每次我需要运行另一个测试时重新创建此文件( 40 GB)都很昂贵,我想模拟删除此文件. 但这必须对删除它的应用程序完全透明.这意味着创建一个符号链接不是一个好的解决方案([-L symlink]返回0而[-L fil

为了运行一些测试,我需要运行一个删除文件的应用程序

由于每次我需要运行另一个测试时重新创建此文件(> 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).

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读