一、基础选项
**-n, --lines=NUM**
功能:显示文件的前 NUM 行,默认为10行。支持负数表示排除末尾行(如 -n -5 显示除最后5行外的所有内容)。
示例:
bash
head -n 5 file.txt # 显示前5行
head -n -10 log.txt # 显示除最后10行外的所有内容
**-c, --bytes=NUM**
功能:显示文件的前 NUM 个字节,忽略换行符。支持二进制文件查看。
示例:
bash
head -c 100 image.jpg # 显示前100字节
head -c -500 binary.log # 显示除最后500字节外的内容
**-q, --quiet, --silent**
功能:禁止显示文件名和分割线,仅输出内容。
示例:
bash
head -q file1.txt file2.txt # 不显示文件名
**-v, --verbose**
功能:始终显示文件名和分割线,便于区分多文件输出。
示例:
bash
head -v file1.txt file2.txt # 显示文件名头信息
二、高级选项
**-z, --zero-terminated**
功能:以零字节(\0)作为行终止符,适用于处理二进制文件或NUL分隔的数据。
示例:
bash
head -z compressed.gz # 处理gzip压缩文件
**–mime-type**
功能:输出文件的MIME类型(需安装 file 命令)。
示例:
bash
head --mime-type image.png # 输出 image/png
三、文件与管道操作
处理多个文件
默认为每个文件添加标题头,使用 -q 可隐藏标题。
示例:
bash
head file1.txt file2.txt # 显示两个文件的前10行(带标题头)
head -q file1.txt file2.txt # 仅显示内容
结合管道使用
从其他命令输出中截取头部内容。
示例:
bash
cat large.log | head -n 50 # 查看日志前50行
find . -name “*.log” -exec head -n 1 {} ; # 查找所有.log文件并显示第一行
四、注意事项
默认行为
若未指定文件,head 从标准输入读取(如 head < input.txt)。
文件不足指定行数时,显示全部内容。
二进制文件处理
直接使用 -n 显示二进制文件可能导致乱码,建议用 -c 指定字节数。
权限问题
需对文件有读权限,否则报错 Permission denied。
五、组合使用示例
显示HTTP响应头
bash
curl -sI example.com | head -c 1024 | hexdump -C # 提取并查看前1KB头信息
实时日志监控
bash
tail -f access.log | head -n 100 | grep “ERROR” # 实时跟踪最后100行中的错误
六、引用说明
基础选项与示例:
高级选项与管道操作:如需查看完整手册,可通过 man head 或 head --help 获取详细信息。