head — 顯示檔案的開頭部分
顯示檔案的前幾行(預設前 10 行)。
語法
head [選項] [檔案...]
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-n NUM, --lines=NUM |
顯示前 NUM 行(預設 10) | head -n 20 file.txt |
-c NUM, --bytes=NUM |
顯示前 NUM 個位元組 | head -c 1K file.bin |
-n -NUM |
顯示除了最後 NUM 行以外的所有行 | head -n -5 file.txt |
-v, --verbose |
在輸出前顯示檔案名稱 | head -v file1.txt file2.txt |
-q, --quiet |
不顯示檔案名稱(多個檔案時) | head -q file1.txt file2.txt |
使用範例
範例 1:查看前 10 行(預設)
不加選項,顯示檔案的前 10 行,適合快速預覽文字檔。
$ head /var/log/syslog
May 20 00:00:01 host rsyslogd: [origin ...] start
May 20 00:00:01 host kernel: Linux version 5.15.0...
範例 2:指定行數
使用 -n 指定要顯示的行數。
$ head -n 5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
範例 3:管線中取前 N 個結果
搭配 sort 取出最大的 5 個項目,是非常常用的組合。
$ du -sh /var/* 2>/dev/null | sort -rh | head -5
12G /var/lib
2.3G /var/log
850M /var/cache
範例 4:顯示多個檔案
同時查看多個檔案的開頭,會在每個檔案前顯示檔名。
$ head -n 3 /etc/hostname /etc/os-release
==> /etc/hostname <==
my-server
==> /etc/os-release <==
NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
範例 5:排除最後幾行
使用 -n -N 顯示除了最後 N 行以外的所有行。
$ head -n -3 file.txt
(顯示除最後 3 行以外的所有行)
常見錯誤與排錯
head: cannot open 'filename' for reading: No such file or directory
- 原因
- 指定的檔案不存在。
- 解法
- 確認檔案路徑與名稱是否正確。