有没有办法创建一个作为命令输出的文件?

有没有办法创建一个作为命令输出的文件?

我有两个文件: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

听起来你的要求需要做很多工作。

相关内容