我必须测试我的程序,它完全从磁盘中删除文件及其内容。为了测试我执行以下操作:
- 创建一个包含一些已知字符串的文件。
- 我的程序删除了该文件。
- 我在文件所在的磁盘上搜索字符串。为此,我让 grep 将磁盘视为一堆原始数据:
$ grep -a -o -c 'some_string_to_be_found' /dev/sda1
测试实际上按预期工作(如果我手动删除文件会找到字符串,如果我的程序删除它则不会)。
问题是磁盘大小可能很大,因此完成测试需要大量时间。此外,磁盘的标签在不同的机器上可能会有所不同。
因此,我考虑如何改用虚拟文件系统。使用 tmpfs 在 RAM 中创建磁盘:
pc:/mnt$ mkdir tmpfs
pc:/mnt$ chmod 777 tmpfs/
pc:/mnt$ mount -t tmpfs -o size=50M tmpfs /mnt/tmpfs/
创建/填充/删除一个文件,然后尝试查找其内容,使用类似:
$ grep -a -o -c 'some_string_to_be_found' /dev/tmpfs
问题是它会导致
grep: /dev/tmpfs: 没有这样的文件或目录
所以问题是:是否可以将 tmpfs 用作设备,或者读取分配给虚拟文件系统的原始内存?