假设我有一个很大的 gzip 文件data.txt.gz
,但通常需要将未压缩的版本提供给程序。当然,data.txt
可以使用进程替换语法,而不是创建一个独立的 unpacked :
./program <(zcat data.txt.gz)
但是,根据具体情况,这可能令人厌烦且容易出错。
有没有办法模拟命名进程替换?也就是说,创建一个伪文件data.txt
,该文件在被访问时会“展开”为进程替换zcat data.txt.gz
。与符号链接将读取操作转发到另一个文件不同,但在这种情况下,它需要是一个临时命名管道。
谢谢。
PS。有点类似的问题
编辑(来自评论)实际用例有一个大型 gzip 语料库,除了以原始形式使用外,有时还需要使用一系列轻量级操作(标记化、小写等)进行处理,然后馈送到一些“更重”的代码。存储经过预处理的副本会浪费磁盘空间,并且重复重新键入完整的预处理管道可能会引入错误。同时,动态运行管道会产生很小的计算开销,因此需要一个长期存在的伪文件来隐藏细节。