head命令中文介紹:
用法:head [選項]... [檔案]...將每個指定檔案的頭10 行顯示到標準輸出。如果指定了多於一個檔案,在每一段輸出前會給出檔案名稱作為檔案頭。如果不指定檔案,或者檔案為"-",則從標準輸入讀取資料。長選項必須使用的參數對於短選項時也是必需使用的。 -c, --bytes=[-]K顯示每個檔案的前K 位元組內容;如果附加"-"參數,則除了每個檔案的最後K位元組資料外顯示剩餘全部內容 -n, --lines=[-]K顯示每個檔案的前K 行內容;如果附加"-"參數,則除了每個檔案的最後K 行外顯示剩餘全部內容 -q, --quiet, --silent不顯示包含給定檔案名稱的檔案頭 -v, --verbose總是顯示包含給定檔案名稱的檔案頭 --help顯示此協助資訊並退出 --version顯示版本資訊並退出K 後面可以跟乘號:b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,GB 1000*1000*1000, G 1024*1024*1024, 對於T, P, E, Z, Y 同樣適用。
tail命令詳解
用法:tail [選項]... [檔案]...顯示每個指定檔案的最後10 行到標準輸出。若指定了多於一個檔案,程式會在每段輸出的開始添加相應檔案名稱作為頭。如果不指定檔案或檔案為"-" ,則從標準輸入讀取資料。長選項必須使用的參數對於短選項時也是必需使用的。 -c, --bytes=K輸出最後K 位元組;另外,使用-c +K 從每個檔案的第K 位元組輸出 -f, --follow[={name|descriptor}]即時輸出檔案變化後追加的資料。-f, --follow 等於--follow=descriptor -F即--follow=name --retry -n, --lines=K輸出最後K 行,代替最後10 行;使用-n +K 從每個檔案的第K 位元組輸出 --max-unchanged-stats=N使用--follow=name, 重新開啟一個在N(預設為5)次迭代後沒有改變大小的檔案來看它是否被解除串連或重新命名(這是迴圈記錄檔的通常情況)。由於有inotify,這個選項很少使用。 --pid=PID同 -f 一起使用,當 PID 所對應的進程死去後終止 -q, --quiet, --silent不輸出給出檔案名稱的頭 --retry即使目標檔案不可訪問依然試圖開啟;在與參數--follow=name 同時使用時常常有用。 -s, --sleep-interval=N with -f, sleep for approximately N seconds (default 1.0) between iterations. With inotify and --pid=P, check process P at least once every N seconds. -v, --verbose always output headers giving file names --help顯示此協助資訊並退出 --version顯示版本資訊並退出如果位元組數或行數K 的第一個字元是"+",輸出從檔案開始第K 個項目,否則輸出檔案最後K 個項目。K 可以使用一下幾種單位之一:b 512,kB 1000,K 1024,MB 1000*1000,M 1024*1024,GB 1000*1000*1000,G 1024*1024*1024,以及T,P,E,Z,Y。如果您希望即時追查一個檔案的有效名稱而非描述內容(例如迴圈日誌),預設的程式動作並不如您所願。在這種場合可以使用--follow=name 選項,它會使tail 定期追蹤開啟給定名稱的檔案,以確認它是否被刪除或被其它某些程式重新建立過。
head: 列印檔案的前10行(預設)
tail: 列印檔案的後10行(預設)
如果你是個典型的開發或者部署人員,是不是覺得開始親切起來。我們平時用的最多的命令
$tail -f catalina.out
$head
執行個體:
1. 列印head.txt, tail.txt的前10行
$head head.txt tail.txt
複製代碼 代碼如下:
==> head.txt <==
head.txt內容
==> tail.txt <==
tail.txt內容
2. 列印 1K的內容
$head –c1K head.txt
3. 列印前5行內容
$head -n5 head.txt
4. 列印出最後5行之外的所有行
$head -n -5 head.txt
這裡-5表示負5
解讀 --help
複製代碼 代碼如下:
用法:head [選項]... [檔案]...
將每個指定檔案的頭10 行顯示到標準輸出。
如果指定了多於一個檔案,在每一段輸出前會給出檔案名稱作為檔案頭。
如果不指定檔案,或者檔案為"-",則從標準輸入讀取資料。
長選項必須使用的參數對於短選項時也是必需使用的。
-c, --bytes=[-]K 顯示每個檔案的前K 位元組內容;
如果附加"-"參數,則除了每個檔案的最後K位元組資料外
顯示剩餘全部內容
-n, --lines=[-]K 顯示每個檔案的前K 行內容;
如果附加"-"參數,則除了每個檔案的最後K 行外顯示
剩餘全部內容
-q, --quiet, --silent 不顯示包含給定檔案名稱的檔案頭
-v, --verbose 總是顯示包含給定檔案名稱的檔案頭
--help 顯示此協助資訊並退出
--version 顯示版本資訊並退出
K 後面可以跟乘號:
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, 對於T, P, E, Z, Y 同樣適用。
解讀:
這裡唯一注意:如果不指定檔案,或者檔案為"-",則從標準輸入讀取資料。
$tail
執行個體:
1.列印一個檔案最後10行
$tail tail.txt
2.追蹤記錄檔,列印檔案最後幾行,並且保持讀取追加資料
tail -f tail.txt
解讀--help
用法:tail [選項]... [檔案]... 顯示每個指定檔案的最後10 行到標準輸出。 若指定了多於一個檔案,程式會在每段輸出的開始添加相應檔案名稱作為頭。 如果不指定檔案或檔案為"-" ,則從標準輸入讀取資料。 長選項必須使用的參數對於短選項時也是必需使用的。 -c, --bytes=K 輸出最後K 位元組;另外,使用-c +K 從每個檔案的第K 位元組輸出 -f, --follow[={name|descriptor}] 即時輸出檔案變化後追加的資料。 -F 即--follow=name --retry -n --lines=K 輸出最後K 行,代替最後10 行;span style="color: #000000">-n +K 從每個檔案的第K 位元組輸出--max-unchanged-stats=N 使用--follow=name, 重新開啟一個在N(預設為5) 次迭代後沒有改變大小的檔案來看它是否被解除連 接或重新命名(這是迴圈記錄檔的通常情況)。 由於有inotify,這個選項很少使用。 --pid=PID 同 -f 一起使用,當 PID 所對應的進程死去後終止 -q --quiet, --silent 不輸出給出檔案名稱的頭 --retry 即使目標檔案不可訪問依然試圖開啟;在與參數 --follow=name 同時使用時常常有用。 -s --sleep-interval=N with -f, sleep for approximately N seconds (default 1.0) between iterations. With inotify and--pid=P, check process P at least once every N seconds. -v --verbose always output headers giving file names --help 顯示此協助資訊並退出 --version 顯示版本資訊並退出 如果位元組數或行數K 的第一個字元是"+",輸出從檔案開始第K 個項目,否則輸出檔案 最後K 個項目。K 可以使用一下幾種單位之一: b 512,kB 1000,K 1024,MB 1000*1000,M 1024*1024, GB 1000*1000*1000,G 1024*1024*1024,以及T,P,E,Z,Y。
解讀:
1. 區別-f 和-F
借網上一例子:
視窗1 輸入
$while [ "true" ] ; do date >>test.log; sleep 1 ; done;
#每隔一秒傳入一個日期到test.log
視窗2 輸入
$tail -f test.log
視窗3 輸入
$rm test.log
此時視窗2 則停止列印,而test.log已經重建
如果採用-F的形式,也會重建一個新的test.log,但會自動重新讀取
收尾
tail和head是兩個非常常用的命令,熟練掌握方便查看檔案內容。兩個很簡單,也很相似,所以放在一起寫出來。