首页/系统/Linux 运维命令速查/lsof 查看进程打开的文件
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条
进程与作业69 条
磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

lsof 查看进程打开的文件

列出进程打开的所有文件(含普通文件、目录、socket):按进程/路径/用户查;排查句柄泄漏、文件占用、已删未释放都靠它。

Linux 运维命令速查系统更新于 2026-10-12
用途进程与文件的对应关系查看
语法lsof [选项] [路径|PID]
常用-p PID /c 命令 /u 用户 +D 目录 +L1 已删

常用示例

常用示例
lsof -p 1234 | head -30              # 该进程打开的文件
lsof /var/log/app.log                # 谁占着这个文件
lsof -u www-data | wc -l             # 用户句柄数
lsof +D /data/app | head             # 目录下被打开的文件(慢)
lsof +L1 | head                      # 已删除但仍占空间(详见场景条目)
无参 lsof 会遍历全系统:大机器上又慢又重,尽量带过滤条件(-p/-u/-c/路径)。

易错点

  • 看别人的进程要 root:普通用户只能看到自己的
  • +D 目录递归扫描开销大:生产高峰改用 lsof | grep 路径(先整取再筛)或 ss 等替代

数据来源与参考

  • man 8 lsof(lsof 官方手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌