加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 模拟’命名’进程替换

发布时间:2020-12-15 21:10:33 所属栏目:安全 来源:网络整理
导读:假设我有一个大的gzip压缩文件data.txt.gz,但通常需要将ungzipped版本提供给程序.当然,不是创建一个独立的解包data.txt,而是可以使用 process substitution语法: ./program(zcat data.txt.gz) 但是,根据具体情况,这可能很烦人且容易出错. 有没有办法模拟命
假设我有一个大的gzip压缩文件data.txt.gz,但通常需要将ungzipped版本提供给程序.当然,不是创建一个独立的解包data.txt,而是可以使用 process substitution语法:

./program<(zcat data.txt.gz) 但是,根据具体情况,这可能很烦人且容易出错. 有没有办法模拟命名的进程替换?也就是说,创建一个伪文件data.txt,只要访问它就会“展开”到进程替换zcat data.txt.gz中.与符号链接不同,将读取操作转发到另一个文件,但在这种情况下,它需要是临时命名管道. 谢谢. PS. Somewhat similar question

编辑(来自评论)实际的用例是拥有一个大型的gzip语料库,除了以原始形式使用外,还有时需要通过一系列轻量级操作(标记化,小写等)进行处理,然后输入到一些“更重”的代码.存储预处理的副本会浪费磁盘空间并重复重新输入完??整的预处理管道可能会引入错误.同时,在运行中运行管道会产生很小的计算开销,因此需要一个长期存在的伪文件来隐藏详细信息.

解决方法

据我所知,你所描述的内容并不存在,尽管这是一个有趣的想法.它需要内核支持,以便打开文件实际上会运行任意命令或脚本.

最好的办法是将long命令保存到shell函数或脚本中,以减少调用进程替换的难度.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读