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命令列及指令碼程式設計例項詳解 》
相關文章
- Linux 檔案重定向Linux
- linux shell重定向Linux
- java -version重定向到檔案Java
- shell基礎-輸出重定向
- [shell基礎]——I/O重定向
- tee - 重定向輸出到多個檔案
- Shell的命令的結果重定向
- Linux 檔案描述符和重定向Linux
- Linux shell I/O重定向詳解(zt)Linux
- Linux 重定向把錯誤輸出到檔案中Linux
- Shell重定向&>file、2>&1、1>&2的區別
- Linux Shell程式設計(25)——I/O 重定向Linux程式設計
- nginx 重定向Nginx
- javaweb重定向JavaWeb
- CI重定向:php(codeigniter)中如何重定向PHP
- Linux Shell程式設計(26)——程式碼塊重定向Linux程式設計
- linux重定向標準錯誤與標準輸出到同一檔案Linux
- Linux重定向Linux
- HTTP 的重定向HTTP
- Linux系統的Shell I/O重定向詳解(轉)Linux
- Linux大檔案重定向和管道的效率對比總結Linux
- ios 將NSLog日誌重定向輸出到檔案中儲存iOS
- 資料流重定向
- SpringMVC一例 是否需要重定向SpringMVC
- 如何將終端輸出的資訊重定向寫入檔案中呢?
- while read line 程式碼中呼叫 ssh 檔案重定向問題.While
- 重定向Redirect 的知識
- Linux 資料重定向Linux
- Linux 重定向輸出Linux
- IISURLRewrite重定向域名到www
- iptable埠重定向 MASQUERADE
- Fiddler(6)AutoResponder,重定向
- linux的I/O重定向和管道的檔案描述符運用,及shell如何實現多執行緒?Linux執行緒
- windows環境下利用重定向管道解壓tar.xz壓縮檔案Windows
- 【Vim】【man】【技巧】使用vim處理man重定向幫助檔案亂碼問題
- Webpack 效能優化 (一)(使用別名做重定向)Web優化
- Laravel 重定向的幾種方法Laravel
- PHP重定向與偽靜態PHP