有没有办法创build一个命令的输出文件?

我有两个文件:foo.txt和bar.txt。 我想要一个名为foobar.txt的文件,它是foo.txt和bar.txt后面的内容。 如果我改变任何一个文件,我想foo​​bar.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 

这甚至有可能吗?

你可以通过inotifywait命令来做到这一点 ,它在inotify-tools包。 据我所知,这不能通过命令完成。

你可以写一个FUSE(文件系统用户空间)来做到这一点。 这基本上是编写一个用户空间程序来充当内核的文件系统。 你可以使它有任何你愿意创build的副作用,比如当你的目标文件被打开时,它cachingcatoo的foo.txt和bar.txt,并从caching中返回块。

维基百科在这里有一篇文章: https : //en.wikipedia.org/wiki/Filesystem_in_Userspace

这听起来像你要求的很多工作。