1. 程式人生 > >【unix學習】重定向、管道、連結檔案

【unix學習】重定向、管道、連結檔案

重定向

不在顯示屏列印命令的錯誤資訊,當找不到檔案的時候,遮蔽了錯誤資訊。
2和>之間不要有空格

[s14516@gdufs]$find / -name 'stdio.h' 2> /dev/null

整合檔案內容

f1和f2的檔案內容合起來儲存在一個檔案

cat f1 f2 > f

標準輸入輸出 0 1 2

0 是一個檔案描述符,表示標準輸入(stdin)
1 是一個檔案描述符,表示標準輸出(stdout)
2 是一個檔案描述符,表示標準錯誤(stderr)

1>&2 意思是把標準輸出重定向到標準錯誤.
2>&1 意思是把標準錯誤輸出重定向到標準輸出。
首先讓描述符1指向輸出目標, 然後2複製1, 當然也指向同一個輸出目標, 這樣所有的輸出都到了同一個目標
&>filename 意思是把標準輸出和標準錯誤輸出都重定向到檔案filename中

Redirecting stdin and stdout in One Command
Command < input-file > out-file
Redirecting stdout and stderr in One Command
Command > out-file 2>err-file
Command > out-file 2>&1
Command >& out-file

管道

豎線 | 前面的命令結果作為後面的輸入
組合一些簡單的命令
[[email protected]

]$who | wc -l
翻頁檢視
[[email protected]]$ls -l | more
統計18點前的使用者個數
[[email protected]]$who | grep '^s14' | awk '$4~/18/' | wc -l
儲存中間結果
[[email protected]]$who | grep '^s14' | tee result | awk '$4~/18/' | wc -l

連結檔案

硬連結

[[email protected]]$ln /tmp/chapter3 chapter3.hard
在檔案索引上記錄的id是指向同一個檔案的索引節點,公用一個儲存空間

缺點:
不能跨系統建立連結
也不能建立資料夾的連結
這就是硬連結

軟連結

[[email protected]]$ln -s /tmp/chapter3 chapter3.soft
建立檔案索引分配一個新的索引節點
分配一個硬碟的儲存空間,這個儲存空間儲存的是連結檔案的內容

缺點:
當原檔案刪除了之後,連結檔案就不能使用了。
但是硬連結是可以繼續使用的。
但是可以跨系統,也可以針對目錄建立連結

[s14516@gdufs]$ls -l chapter3.soft
lrwxrwxrwx 1 s14516 stu 13 2017-10-18 20:29 chapter3.soft -> /tmp/chapter3

檔案型別為l,需要單獨維護這個檔案型別,也是缺點之一。
硬連結的檔案型別是普通檔案