I/O重定向符号

I/O重定向符号

  • > : 标准输出覆盖重定向:将命令的输出重定向输出到其他文件中,如果文件已存在并且有内容就会清空已有内容,再写进去,文件不存在则创建新文件
        # 将 ls -l 命令的输出重定向到ls_usr.txt文件中
        ~$ ls -l /usr > ls_usr.txt
        # 这会看到 ls -l /usr的输出内容
        ~$ cat ls_usr.txt 
        ~$ ls -l /usr/notExists > notExists.txt
        ls: 无法访问'/usr/notExists': 没有那个文件或目录
         # ls -l /usr > ls_usr.txt 等价于 ls -l /usr/ 1> ls_usr.txt 
        ~$ ls -l /usr/ 1> ls_usr.txt  # 同样会重定向到ls_usr.txt文件中
        # 上面的1是文件标识符
        # 如果命令产生错误输出 如 : ls -l /usr/notExists > notExists.txt,那文件标识符就是2
        ~$ ls -l /usr/notExists 2> notExists.txt # 错误的输出重定向到文件中
        ~$ cat notExists.txt # 查看文件,错误信息写到文件中
         ls: 无法访问'/usr/notExists': 没有那个文件或目录
        # 如果某命令既有标准输出,又有错误标准输出,可以分别输出到指定的文件中
        ~$ ls -l /usr/ 1> ls_usr.txt 2> ls_usr_err.txt
    
    
  • >> : 标准输出追加重定向:将命令的输出重定向输出到其他文件中,这个和上面不同的是如果文件已存在,不会清空已有内容而是追加到文件的后面
        ~$ ls -l /tmp/ >> ls_usr.txt 
        ~$ cat ls_usr.txt # 可以看到追加到文件的后面了
    
  • >& : 标识输出重定向:将一个标识的输出重定向到另一个标识的输入
      # 执行command 命令,将标准输出的内容重定向到stdout.txt文件中,如果有标准错误输出也重定向到该文件中
      ~$ command > stdout.txt 2>&1
    
  • < : 标准输入重定向 : 命令将从指定的文件中读取输入而不是键盘输入
        ~$ cat  # 等待键盘输入
        hello  # 键盘输入hello
        hello  # cat命令读出并且打印出hello
        world  # 键盘输入world
        world  # cat 命令读出并且打印出world
       ~$ cat < ls_usr.txt 从文件读入并打印
    

*|: 管道 : 从一个命令读取输出作为另一个命令的输入

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容