linux每一个打开文件都会关联一个文件描述符,需要的时候我们可以使用exec命令指定一个大于3的数字作为文件

linux默认文件描述符

每打开一个shell就会打开默认的三个文件描述符描0,1,2,分别代表标准输入,标准输出和标准错误输出。

exec命令关联文件描述符

exec 5>/tmp/a.txt 读方式
exec 5/tmp/a.txt 读写方式
exec 5<&-;exec5>&- 关闭文件描述符

应用案例:在shell脚本中重新关联标准输出,从而记录日志到指定文件

#!/bin/bash
exec 4>&1         #用4记录标准输出
exec 1>/tmp/abc   #重定向标准输出
echo "123"
echo "456"
exec 1>&4         #恢复标准输出
exec 4>&-         #关闭4 

运行此脚本,脚本中的echo输出会输出到/tmp/abc文件中
脚本第二行用4>&1 是为了记录标准输出的文件描述符便于执行完毕后恢复标准输出,恢复标准输出也可以用exec 1>/dev/tty

注意点:

  1. echo "hello" >&4 向文件描述符中输入内容只使用 > 不能用 >> ,此时的 > 不会清空文件
  2. 是否清空文件需要在exec命令关联文件描述符到文件的时候区别使用 > 或 >>,
    例有如下脚本:
#!/bin/bash
exec 4>/tmp/abc
echo "123" >&4
echo "456" >&4
exec 4>&-

则每次执行完脚本后/tmp/abc文件内容都是123\n456
若把第二行换成exec 4>>/tmp/abc则会追加进去

  • 文件的清空操作是在exec命令的操作时进行的

转载于:https://www.cnblogs.com/soyops/p/linuxexec.html

linux exec操作文件描述符相关推荐

  1. Linux下利用文件描述符恢复的成功失败实验

    数据误删除是作为初级运维人员常常遇到的"低级错误",一些有经验的老手有时也在疲劳.不冷静的情况下"马失前蹄".一旦误删除数据文件,尽快采用影响最小.最迅速的手段 ...

  2. Linux C:文件描述符、IO重定向、恢复标准输入输出

    目录 一.文件描述符 二.IO重定向 三.重定向回终端.伪终端 四.恢复标准输入输出 一.文件描述符 在Linux中,文件描述符是一个非负整数的数据类型.是FILE结构体中的一个成员属性. 每打开或者 ...

  3. linux文件描述符有什么用,linux上的文件描述符3有什么特别之处?

    我的工作,那将在Linux和Mac OS X上运行的服务器应用程序它是这样的:linux上的文件描述符3有什么特别之处? 启动主要应用 控制器进程的叉 调用lock_down()在控制过程中 再次叉终 ...

  4. Linux中对文件描述符的操作(FD_ZERO、FD_SET、FD_CLR、FD_ISSET

    在Linux中,内核利用文件描述符(File Descriptor)即文件句柄,来访问文件.文件描述符是非负整数.打开现存文件或新建文件时,内核会返回一个文件描述符.读写文件也需要使用文件描述符来指定 ...

  5. Linux学习笔记6 文件操作——文件描述符

    基于文件描述符的文件操作 进程一启动,内核就打开了三个描述符,0(标准输入 STDIN),1(标准输出STDOUT), 2(标准错误输出STDERR).Linux用整形数做文件操作,因此称为文件描述符 ...

  6. linux fcntl 函数 文件描述符选项控制

    功能描述:根据文件描述词来操作文件的特性. #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd); ...

  7. Linux中的文件描述符与打开文件之间的关系

    1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是 ...

  8. Linux网络编程--文件描述符

    文件描述符 在Unix和Unix-like操作系统中,文件描述符(file descriptor, FD)是一个文件或者像pipe或者network socket等之类的输入/输出源的唯一标识. 文件 ...

  9. Linux下的文件描述符

    引文 在 Linux 的世界里,一切设备皆文件.对文件的操作都是通过文件描述符(fd)来进行的. Linux 中有7种文件类型: 文件类型 文件类型描述 符号 普通文件 最常使用的一类文件,其特点是不 ...

最新文章

  1. 食品行业特点及SAP解决方案探讨
  2. 影响Python运行效率的因素有哪些?
  3. Timestamp、String、Date之间的转换
  4. GPU 编程入门到精通(三)之 第一个 GPU 程序
  5. k8s部署nginx集群
  6. 第5步 配置pom.xml文件 pom文件好了就是jar包引入好了
  7. python切片原理_分析python切片原理和方法
  8. 语音识别学习笔记(一)【概述】
  9. [转]Google的60款开源项目
  10. 函数嵌套,关键字,闭包和装饰器
  11. Structured Streaming + Kafka测试
  12. VMware15.0安装CentOS7
  13. Java是块级作用域吗_javascirpt如何模仿块级作用域(js高程笔记)
  14. 如何优雅地给同事提“改进性建议”
  15. base64原理解析
  16. 用Python - Requests给项目加个短信验证码注册登录,只花了3分钟
  17. 工作生活截图录像工具
  18. echarts x 起始_echarts中如何在dataZoom 最左侧和最右侧始终显示起始和结束的值
  19. 大数据播报 | 数据悄悄告诉你“私有云背后的秘密”
  20. pg预热插件pg_prewarm

热门文章

  1. linux 修改文件夹权限_Linux文件权限 - Understanding Linux File Permissions
  2. linux设备驱动程序的编程思路,Linux设备驱动工程师之路——高级字符设备驱动程序...
  3. lstm数学推导_LSTM简介以及数学推导(FULL BPTT)
  4. YCbCr空间中进行色彩调整的方法
  5. 小白记事本--学不明白还怕忘记指针--loading未完待续
  6. bs cs架构区别_一文了解微蜂窝、基站、宏蜂窝、直放站、BBU+RRU到底有什么区别...
  7. 【数据库系统原理】SQL语言
  8. c++11 类中关于default、explict、implicit、noexcept、final的详解
  9. HTTP请求报头中各个字段的含义
  10. 激光雷达是什么?一文带你读懂激光雷达