最初由 yongjian 发表 我不太理解home_king所说的的“并行解压缩”的概念。能否解释一下你的例子是如何实现的呢? 我想我的问题是for loop是在tar命令完成后还是一个文件tar着呢就for到下一个文件呢?
使用道具 举报
最初由 yongjian 发表 不知这种算不算是管道并行呢: cat < data1 > data2 将 data1中的内容导出同时导入到另一个文件。但是用的不同的文件描述符吧。
最初由 home_king 发表 的确,现在bash的协同进程不好。It works like chaos! 比如说有一个命令command1,要求它产生的输出不能保存为文件,并同时用两个过滤命令command2与command3来处理它的输出。
最初由 r2007 发表 如下例,echo 产生test字串的输出,其中tr命令将其转换为TEST,sed命令将t替换为9,输出均为标准输出,也可根据需要将其重定向。bash下结果为r2007@www r2007 $ echo test|tee >(tr 'a-z' 'A-Z')|sed 's/t/9/' 9estTEST 复制代码
最初由 r2007 发表 只有命令提供文件名参数时才有实际意义。假如有这么一个cmd1命令,它支持两个文件参数,而且它可以将其输出同时保存在这两个文件中,那么就可以这样 cmd1 >(cmd2) >(cmd3)复制代码 其实cmp <(cat filename1) <(cat filename2)这个例子中,cmp就接受两个文件名参数,所以可以使用两个进程替换。
一个命名管道是一个临时文件,其功能类似于一个有名字的管道。 list是通过命名管道将其输入或输出连接到某处的一个进程。 该(进程)替换有两种形式,一种是对该进程的输入:>(list);一种是对进程的输出:<(list)。
本版积分规则 发表回复 回帖后跳转到最后一页