做什么
输出文件的后 N 行。tail -f 是排查日志的灵魂命令。
常用参数
| 参数 | 含义 |
|---|---|
-n N |
后 N 行 |
-n +N |
从第 N 行开始到末尾 |
-c N |
后 N 字节 |
-f |
跟随追加(实时输出新内容) |
-F |
同 -f 但文件被轮转 / 重建也跟上 |
-s N |
检查间隔 N 秒(配 -f) |
-q |
多文件时不显示文件名 |
实战
tail file.txt # 后 10 行
tail -n 50 access.log # 后 50 行
tail -c 200 file.txt # 后 200 字节
tail -n +100 file.txt # 从第 100 行起到末尾
# 实时跟踪(关键!)
tail -f /var/log/syslog
tail -f /var/log/nginx/access.log
# 文件可能被 logrotate 轮转——用 -F 不丢
tail -F /var/log/app.log
# 同时跟多个文件
tail -f /var/log/{syslog,auth.log}
# 配 grep
tail -f app.log | grep ERROR
跟踪日志的标准姿势
# 1. 看最近 100 行
tail -n 100 app.log
# 2. 持续看新增 + 过滤错误
tail -F app.log | grep -i 'error\|warn'
# 3. 看启动后某个时间起的
tail -F /var/log/journal/... | awk '/2026-05-09 10/'
退出
Ctrl+C 退出 tail -f。
坑
-fvs-F:被 logrotate 重建文件时-f会卡死(跟着已删的 inode),-F会重新打开- grep 配 tail -f 要加
--line-buffered,否则可能输出迟:tail -F app.log | grep --line-buffered ERROR