【发布时间】:2012-04-22 19:02:24
【问题描述】:
我需要一些将实际文件系统伪装成伪造文件系统的代码。因此,当我启动它时,它会将/home/user/Documents/fake_fs 转换为/,因此每个Dir 或File 调用都会转到该目录。一个例子:
我想在/some_file 上创建一个文件,所以我使用:
File.open('/some_file', 'w') do |f|
f.puts 'something on this file'
end
它会写在/home/user/Documents/fake_fs/some_file 而不是/some_file。有没有办法做到这一点?谢谢!
【问题讨论】:
-
我认为 chroot会实现这一点。
-
好吧,我一开始就想到了,但是在阅读了文档之后,我认为它不适合它。这将是一些在运行时将所有文件系统调用“重定向”到伪造路径的代码
-
我想
fakefsgem 可能就是你要找的东西:github.com/defunkt/fakefs -
我也看了
fakefs,但它只是为测试而设计的,而不是为实际代码设计的(我认为) -
chroot 会是更安全的选择,否则你可以看看 fuse:debian-administration.org/articles/619
标签: ruby file filesystems virtual