输入输出重定向

  1. 把命令运行的结果保存到文件当中:用 > 把输出转向就可以了,例子:

     $ ls > ls.txt    #或者 ls-->ls.txt    #把ls命令的运行结果保存到文件ls.txt中
    

    > 是把输出转向到指定的文件,如文件已存在的话也会重新写入,文件原内容不会保留
    >> 是把输出附向到文件的后面,文件原内容会保留下来

  2. 在输出信息的同时把信息记录到文件中:

    tee 命令 : 从标准输入读取内容并将其写到标准输出和文件中

    参数: -a, --append 附加至给出的文件,而不是覆盖它

     $ ls | tee ls.txt   #将会在终端上显示ls命令的执行结果,并把执行结果输出到ls.txt 文件中  
     $ ls | tee -a ls.txt   #保留ls.txt文件中原来的内容,并把ls命令的执行结果添加到ls.txt文件的后面。
    
  3. 多个命令的输出都需要记录: script 命令: 可以记录终端的所有输出到相应的文件中

     $ script
       Script. started, file is typescript
     $ ls
       …… 内容省略
     $ exit
       exit
       Script. done, file is typescript
     $ cat typescript   #就会把上面绿色的部分再显示一次:
       #说明:我们在启动script时没有指定文件名,它会自动记录到当前目录下一个名为 typescript的文件中。也可以用 -a参数 指定文件名
     $ script -a example.txt  #终端的输出内容被记录到 example.txt这个文件中
       #退出script时,用 exit,事实上script就是启动了一个shell
    
  4. 字符设置和文件格式转换

     dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX 
     unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS 
     recode HTML <page.txt> page.html 将一个文本文件转换成html 
     recode -l | more 显示所有允许的转换格式
    

输入输出重定向符号

输入重定向的符号

符号 作用
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇到分界符停止
命令 < 文件1 >文件2 将文件1作为命令的标准输入并将标准输出到文件2

例如:

将多行文字追加写入文件

cat >> /etc/profile << EOF
export JAVA_HOME=/usr/bin
...
EOF

如果需要覆盖写入

cat > /etc/profile << EOF
export JAVA_HOME=/usr/bin
...
EOF

输出重定向的符号

符号 作用
命令 > 文件 将标准输出重定向到文件中(清除原有文件中的数据)
命令 2> 文件 将错误输出重定向到文件中(清除原有文件中的数据)
命令 >> 文件 将标准输出重定向到文件中(在原有的内容后追加)
命令 2>> 文件 将错误输出重定向到文件中(在原有内容后面追加)
命令 >> 文件 2>&1命令 &>> 文件 将标准输出和错误输出共同写入文件(在原有内容后追加)

>2> 的区别: 假如 xx文件是不存在的,> 无法将错误信息写入文件,但2> 可以

ls -l xx > res.txt # res.txt为空
ls -l xx 2> res.txt # res.txt里有错误内容

results matching ""

    No results matching ""