1.文件描述符是与一个打开的文件或数据流相关联的整数。文件描述符0,1,2是系统预留的。

  • 0 --------stdin(标准输入)
  • 1 --------stdout(标准输出)
  • 2---------stderr(标准错误)

2.输出重定向

常见的有> 、>>、2>&1、&>

>操作符用于截断(w)模式的文件写入(如果文件目标文件包含文件按,就先截断,即清空后再写入

>>操作符用于追加模式(a)的文件按写入(新的数据会被添加到 目标文件的末尾,原有的文件内容保留)

>和>>使用标注输出,所以>等同于1>, >>等同于1>>,如果需要使用特定的文件描述符,就需要将描述符至于操作符之前

1>&2 意思是把标准输出重定向到标准错误.
2>&1 意思是把标准错误输出重定向到标准输出。
&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

[hupeng@hupeng-vm shell]$touch .txt
[hupeng@hupeng-vm shell]$ls .txt #默认情况下,正常输出信息和错误信息直接在终端上显示
.txt
[hupeng@hupeng-vm shell]$ls .txt .txt
ls: cannot access .txt: No such file or directory
.txt
[hupeng@hupeng-vm shell]$ls .txt .txt > stdout.txt #将正确输出重定向到stdout.txt中,错误信息还是直接在终端输出
ls: cannot access .txt: No such file or directory
[hupeng@hupeng-vm shell]$cat stdout.txt
.txt
[hupeng@hupeng-vm shell]$ls .txt .txt > stdout.txt >stderr.txt #将错误信息输出到stderr.txt
[hupeng@hupeng-vm shell]$cat stdout.txt
.txt
[hupeng@hupeng-vm shell]$cat stderr.txt
ls: cannot access .txt: No such file or directory
[hupeng@hupeng-vm shell]$#使用2>&1标准输出和标注出错输出到同一个文件
[hupeng@hupeng-vm shell]$ls .txt .txt >out.txt >& #注意是&,不是1!!! &1表示文件描述符1,即标准输出 将标准输出重定向到了out.txt,而将标准出错重定向到了标准输出
[hupeng@hupeng-vm shell]$cat out.txt
ls: cannot access .txt: No such file or directory
.txt
[hupeng@hupeng-vm shell]$ls .txt .txt >out.txt > #这里的1是普通文件名
[hupeng@hupeng-vm shell]$cat out.txt
.txt
[hupeng@hupeng-vm shell]$cat #1是普通文件名
ls: cannot access .txt: No such file or directory
[hupeng@hupeng-vm shell]$rm out.txt
[hupeng@hupeng-vm shell]$ls .txt .txt &>out.txt #使用&> 将stout和stderrr都重定向到了指定文件
[hupeng@hupeng-vm shell]$cat out.txt
ls: cannot access .txt: No such file or directory
.txt
[hupeng@hupeng-vm shell]$#关于>和>>
[hupeng@hupeng-vm shell]$echo "test 1" > out.txt
[hupeng@hupeng-vm shell]$cat out.txt
test
[hupeng@hupeng-vm shell]$echo "test 2" > out.txt
[hupeng@hupeng-vm shell]$cat out.txt
test
[hupeng@hupeng-vm shell]$echo "test 3" >> out.txt
[hupeng@hupeng-vm shell]$cat out.txt
test
test
[hupeng@hupeng-vm shell]$echo "test 4" >> out.txt
[hupeng@hupeng-vm shell]$cat out.txt
test
test
test

shell文件描述符和重定向的更多相关文章

  1. 玩转Linux文件描述符和重定向

    本文介绍linux中文件描述符与重定向的相关知识,文件描述符是与文件输入.输出相关联的整数,它们用来跟踪已打开的文件.有需要的朋友参考下. 原文出处:http://www.jbxue.com/arti ...

  2. Linux文件描述符与重定向

    文件描述符可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 当Linux启动的时候会默认打开三个文件描述符,分别是: 标 ...

  3. Linux Shell 文件描述符 及 stdin stdout stderr 重定向

    Abstract: 1) Linux Shell 命令的标准输入.标准输出.标准错误,及其重定位: 2)Linux Shell 操作自定义文件描述符: 文件描述符是与文件相关联的一些整数,他们保持与已 ...

  4. linux专题一之文件描述符、重定向、管道符、tee命令

    本节讨论一下几个问题: 1. 文件描述符. 2. 重定向. 3. 管道符 4. tee的用法. 1. 文件描述符. 在linux系统中一切皆文件.文件夹和设备都是文件.如何用来区别不同的文件呢?这里的 ...

  5. shell 文件描述符

    /tmp/test.sh > /tmp/test.log 2>&1 这个命令的意思是 前半部分是将shell的输出重定向到/tmp/test/log.默认是标准输出(stdout文 ...

  6. Linux 文件描述符和重定向

    200 ? "200px" : this.width)!important;} --> 介绍 文件描述符是与文件输入.输出相关联的整数,在编写脚本时会经常使用标准的文件描述符 ...

  7. 【Linux】文件描述符与重定向

    重定向符号 符号 描述 > 输出重定向到一个文件或设备 覆盖原来的文件 >! 输出重定向到一个文件或设备 强制覆盖原来的文件 >> 输出重定向到一个文件或设备 追加原来的文件 ...

  8. Shell重定向文件描述符

    #!/bin/bash      最近在看shell,各种困惑,不过解决困惑的感觉还是很不错的.废话少说,linux中使用文件描述符来标识每个文件对象.文件描述符为一个非负整数,可以唯一标识会话中打开 ...

  9. 18 shell 重定向以及文件描述符

    1.对重定向的理解 2.硬件设备和文件描述符 文件描述符到底是什么 3.Linux Shell 输出重定向 4.Linux Shell 输入重定向 5.结合Linux文件描述符谈重定向 6.Shell ...

随机推荐

  1. Automatic Text Difficulty Classifier Assisting the Selection Of Adequate Reading Materials For European Portuguese Teaching --paper

    the system uses existing Natural Language Processing (NLP) tools, a parser and an hyphenator, and tw ...

  2. Is this Sentence Difficult? Do you Agree? -paper

    术语: 数据lemma:词根,词元(词的基本形式,如名词单数或动词的不定式形式) content words:实词part-of-speech:词性object-relative clauses an ...

  3. windows 下安装composer

    安装 1.在PHP目录下,打开php.ini文件,开启openssl扩展.去掉extension=php_openssl.dll前面的分号(;) 2.把php目录添加到环境变量(和php.exe同级目 ...

  4. linux 执行脚本

    crontab -e 直接编辑定时脚本 保存后,在/var/spool/cron/下自动生成一个以用户名命名的脚本文件.

  5. Learning by doing——小黄杉获得感想

    突然想起来前一个月答应了栋哥要写一篇博客的,后来一直忙于复习就忘了. 不过答应了的事就要完成嘛. 获得感言 首先就是非常高兴的了,这也是对我的能力的一种肯定 这次的获得原因是期中考最快满分,emmm侧 ...

  6. ios Programming:The Big Nerd Ranch Guid(6th Edition) (Joe Conway & AARON HILLEGASS 著)

    Introduction (已看) Prerequisites What Has Changed in the Sixth Edition? Our Teaching Philosophy How t ...

  7. Tower Defense Toolkit 学习

    代码太多,就不贴了.用到的基本已注释. 游戏中的数据存放在Resources/Database中.游戏运行时,通过Resources.Load加载 UI构成   对象池 using UnityEngi ...

  8. 模拟实现memcpy 与 memmove

    模拟实现memcpy 与 memmove 1.str系列的函数只能处理字符串——>必须带有'\0'2.memcpy内存处理函数:不涉及'\0',需要包含头文件 string.h3.source的 ...

  9. MySQL全文本搜索

    启用全文本搜索支持 create table text( -> id int not null auto_increment, -> texts text null, -> prim ...

  10. FastAdmin 数据库备份插件更新到 v1.0.4

    FastAdmin 数据库备份插件更新到 v1.0.4 下载地址: https://www.fastadmin.net/store/database.html 更新如下: 修复了忽略列表无效的 Bug ...