shell文件描述符和重定向
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文件描述符和重定向的更多相关文章
- 玩转Linux文件描述符和重定向
本文介绍linux中文件描述符与重定向的相关知识,文件描述符是与文件输入.输出相关联的整数,它们用来跟踪已打开的文件.有需要的朋友参考下. 原文出处:http://www.jbxue.com/arti ...
- Linux文件描述符与重定向
文件描述符可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 当Linux启动的时候会默认打开三个文件描述符,分别是: 标 ...
- Linux Shell 文件描述符 及 stdin stdout stderr 重定向
Abstract: 1) Linux Shell 命令的标准输入.标准输出.标准错误,及其重定位: 2)Linux Shell 操作自定义文件描述符: 文件描述符是与文件相关联的一些整数,他们保持与已 ...
- linux专题一之文件描述符、重定向、管道符、tee命令
本节讨论一下几个问题: 1. 文件描述符. 2. 重定向. 3. 管道符 4. tee的用法. 1. 文件描述符. 在linux系统中一切皆文件.文件夹和设备都是文件.如何用来区别不同的文件呢?这里的 ...
- shell 文件描述符
/tmp/test.sh > /tmp/test.log 2>&1 这个命令的意思是 前半部分是将shell的输出重定向到/tmp/test/log.默认是标准输出(stdout文 ...
- Linux 文件描述符和重定向
200 ? "200px" : this.width)!important;} --> 介绍 文件描述符是与文件输入.输出相关联的整数,在编写脚本时会经常使用标准的文件描述符 ...
- 【Linux】文件描述符与重定向
重定向符号 符号 描述 > 输出重定向到一个文件或设备 覆盖原来的文件 >! 输出重定向到一个文件或设备 强制覆盖原来的文件 >> 输出重定向到一个文件或设备 追加原来的文件 ...
- Shell重定向文件描述符
#!/bin/bash 最近在看shell,各种困惑,不过解决困惑的感觉还是很不错的.废话少说,linux中使用文件描述符来标识每个文件对象.文件描述符为一个非负整数,可以唯一标识会话中打开 ...
- 18 shell 重定向以及文件描述符
1.对重定向的理解 2.硬件设备和文件描述符 文件描述符到底是什么 3.Linux Shell 输出重定向 4.Linux Shell 输入重定向 5.结合Linux文件描述符谈重定向 6.Shell ...
随机推荐
- java一些必会算法
经典算法的Java实现 (1)河内塔问题: 42 (2)费式数列 43 (3)巴斯卡(Pascal)三角形 44 (4)蒙地卡罗法求 PI 45 (5)最大公因数.最小公倍数 46 (6)阿姆斯壮数 ...
- 如何简单实用hammer
1,首先引用hammer在html中 <script src="js/jquery.hammer.js"></script> 2.在js中创建 ...
- kmp--看毛片算法
string str; int next[N];// 核♥: next[k] 字符串前(k-1)个元素有next[k]个相等前后缀 // 初始化 next[0]=-1; next[1]=0; void ...
- PowerDesigner15 增加Domain域
第一步: 第二步: 点击此按钮,在弹出框中对Domain域打钩即可
- HPU第四次积分赛-K :方框(水题,打印图形)
方框 描述 用'*'打印出一个nxn的字符图形(1<=n<=100). 输入 多组输入.每行输入一个n,输入EOF结束文件. 输出 输出一个满足题意的图形. 输入样例 1 1 2 5 6 ...
- GraphQL和C#
GraphQL ---02 GraphQL和C#结合的实战项目 本文章是介绍和记录如何创建GraphQL项目,以及如何使用GraphQL进行数据的相关操作.项目参照GraphQL .Net 的官方 ...
- CTF—训练平台——Crypto
一.滴答~滴 看形式是摩尔斯电码,放到解密网址里解密http://www.jb51.net/tools/morse.htm 二.聪明的小羊 看到题目里“栅栏”,“2个”想到是栅栏加密:栏数为两栏: 三 ...
- git使用之放弃本地修改
一,未使用 git add 缓存代码时. 可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “-- ...
- jenkins 集成 keycloak 认证
keycloak 是很不错的sso 工具,当然也有Jenkins 的插件,我们可以使用jenkins 插件,方便用户账户的管理 环境准别 docker-compose version: "3 ...
- skipper 内置的常用filters
skipper 的filter 功能很强大,可做好多方便的扩展 格式: all: * -> filter1 -> filter2 -> "http://127.0.0.1: ...