Shell 重定向(一):檔案重定向
在 Linux 中,總有 3 個預設的裝置檔案是開啟的,即標準輸入 stdin(鍵盤)、標準輸出 stdout(螢幕)和標準錯誤 stderr(輸出到螢幕的錯誤資訊)。這 3 個檔案和其他任何開啟的檔案,都可以被重定向。重定向簡單地說就是從檔案、命令、程式、指令碼,甚至是指令碼中的程式碼塊獲取輸出並把它作為輸入傳送到另一個檔案、命令、程式或指令碼。
每個開啟的檔案被指定一個描述符。比如,標準輸入、標準輸出和標準錯誤的檔案描述符即分別是 0、1 和 2。對於開啟的另外的檔案,這裡餘留了檔案描述符 3~9。
檔案重定向
檔案重定向是更改一個檔案描述符以指向一個檔案。
操作符 “>” 開始一個輸出重定向。重定向預設只適用於一條命令。當 Bash 執行命令時,它告訴 Bash,標準輸出(stdout)應當指向一個檔案,而不是它之前指向的地方。
這個重定向只對它應用於的單個命令有效。再此之後執行的其他命令將繼續把它們的輸出傳送到指令碼的標準輸出位置。
一個簡單的示例:
#! /bin/bash
if [ $# -lt 1 ]; then
echo "Usage: $0 DIRECTORY..."
exit
fi
# 遍歷在命令列中給指令碼指定的所有引數
for dir in $@
do
find $dir -name "*.tmp" -exec rm -f {} \;
done 2> errors.log
保留檔案先前內容
使用雙重重定向操作符“>>”。“>>”將不會清空檔案,它將只是新增新的內容到檔案末尾。
因此,對上面的例子進行修改:
#! /bin/bash
if [ $# -lt 1 ]; then
echo "Usage: $0 DIRECTORY..."
exit
fi
# 遍歷在命令列中給指令碼指定的所有引數
for dir in $@
do
find $dir -name "*.tmp" -exec rm -f {} \;
done 2>> errors.log
本文參考自 《Linux Shell命令列及指令碼程式設計例項詳解 》
相關文章
- 使用檔案重定向
- [20201116]bash shell IO重定向.txt
- Shell輸入\輸出重定向
- tee - 重定向輸出到多個檔案
- 重定向
- Shell重定向&>file、2>&1、1>&2的區別
- javaweb重定向JavaWeb
- nginx 重定向Nginx
- 域名重定向
- Linux重定向Linux
- Response重定向
- Linux大檔案重定向和管道的效率對比總結Linux
- HTTP 的重定向HTTP
- 關於重定向
- linux的I/O重定向和管道的檔案描述符運用,及shell如何實現多執行緒?Linux執行緒
- [轉]重定向輸出
- 輸出重定向 管道
- .htaccess 301重定向
- Fiddler(6)AutoResponder,重定向
- Linux 資料重定向Linux
- python 輸出重定向Python
- bp 開放重定向
- 轉發和重定向
- 如何將終端輸出的資訊重定向寫入檔案中呢?
- Linux命令學習(重定向)Linux
- 【轉發與重定向(二)】
- 2018-05-28 重定向
- URL重定向/跳轉漏洞
- servlet 轉發與重定向Servlet
- 重定向Redirect 的知識
- 8、flask-Redirect重定向Flask
- ICMP路由重定向攻擊路由
- 用C語言實現簡易的shell程式,支援多重管道及重定向C語言
- nginx下thinkphp的URL重定向NginxPHP
- PHP重定向與偽靜態PHP
- Laravel 重定向的幾種方法Laravel
- APEX重定向頁跳轉1
- 解讀“重定向SMB”攻擊
- localhost 重定向次數過多localhost