linux exec操作文件描述符
linux每一個打開文件都會關聯一個文件描述符,需要的時候我們可以使用exec命令指定一個大於3的數字作為文件
linux默認文件描述符
每打開一個shell就會打開默認的三個文件描述符描0,1,2,分別代表標準輸入,標準輸出和標準錯誤輸出。
exec命令關聯文件描述符
exec 5>/tmp/a.txt 讀方式
exec 5
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
注意點:
- echo "hello" >&4 向文件描述符中輸入內容只使用 > 不能用 >> ,此時的 > 不會清空文件
是否清空文件需要在exec命令關聯文件描述符到文件的時候區別使用 > 或 >>, 例有如下腳本:
#!/bin/bash exec 4>/tmp/abc echo "123" >&4 echo "456" >&4 exec 4>&-
則每次執行完腳本後/tmp/abc文件內容都是123
456
若把第二行換成exec 4>>/tmp/abc則會追加進去
- 文件的清空操作是在exec命令的操作時進行的
※python協程1:yield的使用
※Azure經典門戶創建VM,如何設置使用靜態IP地址?
※Mina 報文監聽器NioDatagramAcceptor一
※Redis 集群搭建詳細指南
TAG:科技優家 |
※linux中用locate查找文件
※如何操作 Unix/Linux 文件系統
※linux文件的複製
※使用python將excel轉為lua文件
※理解 Linux 中的 /etc/services 文件
※Vdex Extractor:從Vdex文件反編譯和提取Android Dex位元組碼
※Linux系統安裝Oracle,配置etc/security/limits.conf文件
※Eclipse編輯Spring配置文件xml時自動提示類class包名
※乾貨:詳解 Tomcat 配置文件 server.xml
※如何在 Linux 伺服器上設置 ulimit 和文件描述符數限制
※Linux rsync同步文件腳本
※dbxfs:在 Linux 中本地掛載 Dropbox 文件夾
※Spring Boot 配置文件 yml與properties
※linux-RHEL/Centos都選擇了xfs文件系統
※用fread和fwrite讀寫文件
※Win10刪除需要trustedinstaller許可權的文件的方法
※redis.conf配置文件詳解
※Python使用pandas讀取Excel文件多個WorkSheet的數據並繪製柱狀圖和熱力圖
※vue-cli 腳手架中 webpack 配置基礎文件詳解
※tensorboard多個events文件顯示紊亂的解決辦法