關于 tail 命令的幾個實用例子
顧名思義,tail 命令輸出單個或多個文件的最后部分內容。默認情況下,tail 命令將會打印文件的最后 10 行內容。在實際應用中,我們經常用它來實時讀取日志文件。
tail 命令的語法結構如下所示:
作為演示,我們使用如下文件內容來介紹 tail 命令:?
剛剛我們提到過,tail 命令默認會顯示文件的最后 10 行內容,但是當文件內容總共不足 10 行時,會顯示整個文件的內容。當然大多數情況下,我們不使用它的默認行為,而是根據實際情況來選擇應用。接下來我們根據例子來逐個介紹下。
1,使用 tail 命令打印文件的最后 x 行內容
打印文件的最后 x 行內容(而不是默認的最后 10 行),可參考如下語法結構:
比如,查看文件的最后 5 行內容:?
小提示:你也可以直接使用 tail -x 而不是 tail -n x 來顯示最后 x 行內容。
2,打印從 x 行開始往后的所有內容
如果想要打印從 x 行開始往后的所有內容,可使用 +x 選項,如下所示:
比如,我們的示例文檔,想要打印從第 7 行開始的所有內容,如下:
3,使用 tail 命令同時查看多個文件
使用 tail 命令可以同時查看多個文件。其語法結構如下所示:
與 head 命令類似,查看的各個文件名會顯示在輸出中。比如,我們想要查看 tiap.txt 和 sherlock.txt 的最后 3 行,如下所示:
提示,使用 -q 選項可以在輸出中不顯示文件名信息。
4,使用 tail 命令實時監視文件
假設我們有一個文件,其內容會實時增加(比如日志文件),tail 命令可以幫助我們實時查看新添加到文件中的內容。這個功能可通過使用 -f 選項來實現:
上述命令會首先顯示文件的最后 10 行內容,然后當文件有新的內容增加時,也會將新的內容實時輸出到終端中。這個功能被廣泛用于讀取日志文件,這也可能是 tail 命令最常見的用法。
提示:如果使用 -F 選項代替 -f 選項,tail 命令會等待輸入文件創建(如果不存在)后,在實時顯示文件的內容。
5,在管道重定向中使用 tail 命令
tail 命令還可以結合??管道重定向???來使用。比如,假如在一個目錄中有許多文件,我們只想查看最后 3 個修改過的文件,那么可以按如下方式:
上述命令中,ls -lrt 按時間順序倒敘列出所有文件,然后通過管道重定向將輸出給到 tail 命令,tail 命令解析這個輸出,只顯示其最后的 3 行,這 3 行內容就是我們所需要的最近 3 個修改的文件列表。
6,在 tail 命令的輸出中顯示行號
我們在查看某個文檔的時候,如果文檔中可以顯示行號,那么對于我們來說是非常友好的,比如我們想要查看當前正在閱讀的在多少行,整個文件有多少行內容,等等。
不過,tail 命令并沒有內置的顯示行號的功能。不過我們可以通過其他方式來實現這一功能,那就是通過使用 nl 命令以及管道重定向結合 tail 命令來實現。
nl 命令可以在文件內容中顯示行號,將其輸出通過管道重定向到 tail 命令中,就可以滿足我們的需求。如下所示: