在Linux中是否有方法创建一个;“虚拟文件”;这是两个文件的连接?
我有两个数据集,我想运行一个程序。我想将结果与对每个数据集单独运行分析以及对组合数据运行分析进行比较。由于它们是大文件,我不希望创建一个由两个数据集连接而成的全新文件,从而将所需的磁盘空间增加一倍。在Linux中是否有某种方法可以创建类似符号链接的东西,但它指向两个文件,这样当它被读取时,它将按顺序读取另外两个文件,就像它们被连接到一个文件中一样?我猜可能不会,但我想我应该检查一下。您的程序可以读取标准输入吗在Linux中是否有方法创建一个;“虚拟文件”;这是两个文件的连接?,linux,file,concatenation,Linux,File,Concatenation,我有两个数据集,我想运行一个程序。我想将结果与对每个数据集单独运行分析以及对组合数据运行分析进行比较。由于它们是大文件,我不希望创建一个由两个数据集连接而成的全新文件,从而将所需的磁盘空间增加一倍。在Linux中是否有某种方法可以创建类似符号链接的东西,但它指向两个文件,这样当它被读取时,它将按顺序读取另外两个文件,就像它们被连接到一个文件中一样?我猜可能不会,但我想我应该检查一下。您的程序可以读取标准输入吗 cat file-1 file-2 | yourprogram 如果您的程序只能从命
cat file-1 file-2 | yourprogram
如果您的程序只能从命令行上命名的文件中读取,则这可能会起作用:
yourprogram <(cat file-1 file-2)
yourprogram从技术上讲,一个进程可以创建一个套接字,并通过该套接字简单地输出两个文件。但是你会有一个进程,每个连接的文件,这将是相当痛苦的效率低下。你可以编写一个自定义的FUSE驱动程序(对于简单的使用来说,这是一个巨大的杀伤力,imho)。不幸的是,这个程序将文件名作为参数,所以我认为任何解决方案都必须在操作系统级别。这个程序将文件名作为参数,这就是我的第二个示例。如果您使用的是bashshell,并且您的程序只打开文件一次,从头到尾读取它,然后关闭它,那么您可以使用我的第二个示例。