我有两个文件:foo.txt 和 bar.txt。我想要一个名为 foobar.txt 的文件,它是 foo.txt 和 bar.txt 的内容。如果我更改任何一个文件,我希望 foobar.txt 仍然输出 foo.txt 和 bar.txt 中当前的内容。
现在要获取 foobar.txt,我可以执行:
cat foo.txt bar.txt > foobar.txt
但每次编辑源文件时我都必须这样做。
理想情况下我想做这样的事情:
ln -[some arg that uses a command rather than a real file] "cat foo.txt bar.txt" foobar.txt
这可能吗?
答案1
您可以通过通知等待命令,它位于 inotify-tools 包中。据我所知,这无法通过 ln 命令完成。
答案2
您可以编写一个 FUSE(文件系统用户空间)来实现这一点。这基本上就是编写一个用户空间程序来充当内核的文件系统。您可以让它产生任何您愿意创建的副作用,例如,当您的目标文件打开时,它会缓存 cat'ed foo.txt 和 bar.txt,并从该缓存中返回块。
维基百科上有一篇文章:https://en.wikipedia.org/wiki/Filesystem_in_Userspace
听起来你的要求需要做很多工作。