tailf、tail -f、tail -F三者區別

韓師學子--胖佳發表於2019-03-25

                     tailf、tail -f、tail -F三者區別

 

轉載:https://blog.csdn.net/qq_15037231/article/details/78404261

 

tail -f      等同於--follow=descriptor,根據檔案描述符進行追蹤,當檔案改名或被刪除,追蹤停止

tail -F     等同於--follow=name  --retry,根據檔名進行追蹤,並保持重試,即該檔案被刪除或改名後,如果再次建立相同的檔名,會繼續追蹤

tailf        等同於tail -f -n 10(貌似tail -f或-F預設也是列印最後10行,然後追蹤檔案),與tail -f不同的是,如果檔案不增長,它不會去訪問磁碟檔案,所以tailf特別適合那些便攜機上跟蹤日誌檔案,因為它減少了磁碟訪問,可以省電。

 

說到檔案描述符,百度了一下下

檔案描述符:核心(kernel)利用檔案描述符(file descriptor)來訪問檔案。檔案描述符是非負整數。開啟現存檔案或新建檔案時,核心會返回一個檔案描述符。讀寫檔案也需要使用檔案描述符來指定待讀寫的檔案。

每一個檔案描述符會與一個開啟檔案相對應,同時,不同的檔案描述符也會指向同一個檔案。相同的檔案可以被不同的程式開啟也可以在同一個程式中被多次開啟。系統為每一個程式維護了一個檔案描述符表,該表的值都是從0開始的,所以在不同的程式中你會看到相同的檔案描述符,這種情況下相同檔案描述符有可能指向同一個檔案,也有可能指向不同的檔案。具體情況要具體分析,要理解具體其概況如何,需要檢視由核心維護的3個資料結構。
1.程式級的檔案描述符表;
2.系統級的開啟檔案描述符表;
3.檔案系統的i-node表。

檔案描述符在形式上是一個非負整數。實際上,它是一個索引值,指向核心為每一個程式所維護的該程式開啟檔案的記錄表。當程式開啟一個現有檔案或者建立一個新檔案時,核心向程式返回一個檔案描述符。檔案描述符的有效範圍是 0 到 OPEN_MAX。一般來說,每個程式最多可以開啟 64 個檔案(0 — 63)。

相關文章