重定向"重定向"和"管道"之间的区别?

分享于 

2分钟阅读

ubuntu

  繁體

ls | grep file.txt


管道用于将输出传递给另一个程序或实用工具。

重定向用于将输出传递到文件或流。

例子:thing1 > thing2thing1 |thing2

thing1 > thing2

  • 你的shell运行thing1的程序
  • thing1输出的所有内容都将放在名为thing2的文件中,注意-如果存在,它会被覆盖)
  • 如果要将程序thing1的输出传递给thing2的程序,可以执行以下操作:

    thing1 > temp_file && thing2 < temp_file

  • 运行名为thing1的程序
  • 将输出保存到名为temp_file的文件中
  • 运行thing2程序,假装输入temp_file的内容作为输入
  • 但是,这是笨拙的,所以它们将管道作为更简单的方法,thing1 |thing2做同样的事情 thing1 > temp_file && thing2 < temp_file

    编辑以在注释中提供更详细的问题:

    ls | gerp log.txtbash: gerp: command not found


  • 答案2


    两个运算符之间有一个重要的区别:

  • ls > log.txt -->此命令将输出发送到log.txt文件。

  • ls | grep file.txt -->此命令通过使用管道(| )将ls的输出发送到grep命令,并在中搜索grep命令。

  • 如果你必须使用第一个方案执行相同的任务,那么它是:

    
    ls > log.txt; grep 'file.txt' log.txt
    
    
    
    

    管道(使用| )用于将输出发送到其他命令,而重定向(使用> )用于将输出重定向到某些文件。



  • RED  DIFF  不同  Redirect  
    相关文章