麒麟操作系统怎么查看文件被哪个程序占用了

梦晨君_4258

梦晨君_4258

2026-07-04

210人浏览

原创

麒麟系统中文件“设备忙”需用lsof定位占用进程:先确认lsof已安装(lsof -v),再按路径(lsof /path)、pid(lsof -p pid)、已删文件(sudo lsof +l1)、用户或命令名(lsof -u/-c)等多方式精准排查。

麒麟操作系统怎么查看文件被哪个程序占用了

当您在麒麟操作系统中尝试删除、移动或卸载某个文件却提示“设备忙”“文本忙”或“权限 denied”时,说明该文件正被一个或多个进程打开并持有句柄,必须先定位占用进程才能安全操作。

确认系统是否已安装 lsof 工具

麒麟OS多数桌面版默认预装 lsof,但精简镜像或定制系统可能缺失。未安装时执行 lsof 会报错 command not found,后续所有查询将失败。

打开终端,运行:
lsof -v

若返回版本信息(如 lsof version 4.94.0),说明已就绪;若提示命令不存在,则需安装:

对于基于 Debian/Ubuntu 的麒麟 V10:
sudo apt-get update && sudo apt-get install lsof

对于基于 CentOS/RHEL 的麒麟 V10:
sudo yum install lsof 或 sudo dnf install lsof

直接查指定文件被哪些进程占用

这是最常用、最直接的方式,适用于已知文件路径且需立即解除占用的场景。

在终端中输入:
lsof /path/to/your/file

【/path/to/your/file 必须是绝对路径】例如要查 /home/user/document.pdf,不能写 document.pdf 或 ./document.pdf,否则返回空结果。

路径含空格或特殊字符(如括号、中文)时,必须用单引号包裹:
lsof '/home/user/我的笔记 (2026).log'

若普通用户权限不足(如查询 /var/log/syslog),需加 sudo:
sudo lsof /var/log/syslog

按进程 PID 反查它打开了哪些文件

当您已通过任务管理器或 ps 命令获知可疑进程 PID(比如 8921),想确认它是否正在读写某类文件,可用此法全面审查其资源占用。

第一步:获取目标进程 PID
例如查找 nginx 主进程:
ps aux | grep 'nginx: master'

协同养育操作系统
协同养育操作系统

协同养育操作系统(Co-Parenting OS)— 离异家庭专业协同养育支持系统。12模块覆盖接送管理、成长记忆库、孩子观察站、亲子关系粘合剂、共同挑战中心、情绪冲突观察、父母成长、成长档案馆、成长阶段引擎、风险预警、驾驶舱、被恶意攻击急救包。当用户涉及离异家庭育儿、协同养育、抚养探视、接送安排、孩子成长记录、亲子关系、离异冲突、被恶意攻击、前任矛盾等话题时触发。

下载

第二步:用 PID 查询所有打开文件
lsof -p 8921

第三步:如只需输出文件路径列表供脚本处理,加 -t 参数:
lsof -p 8921 -t

注意:lsof -p 不需要 root 权限,但若该进程以其他用户身份运行且您非 root,部分文件路径可能显示为 “*DEL*” 或不可见——此时必须用 sudo lsof -p 8921 才能完整列出。

查找已被删除但仍占磁盘空间的文件

这类文件在 ls 中不可见,但因进程未关闭句柄,其数据块仍在磁盘上持续占用空间,常导致 df 显示已满而 du 却找不到大文件。

执行:
sudo lsof +L1

输出中每一行末尾带 (deleted) 标记的条目,就是已删未释放的文件。例如:
chrome 12345 user 123u REG 253,1 123456789 123456 /tmp/cache.bin (deleted)

如需限定搜索范围(如只查 /var/log 下的已删日志):
sudo lsof +L1 /var/log

结合 grep 快速过滤关键词(如只看 .log 类型):
sudo lsof +L1 | grep '\.log$'

按用户或命令名批量筛选打开文件

在多用户环境或服务密集部署中,可跳过逐个查 PID,直接按归属维度收敛目标集合。

方法一:列出指定用户所有打开文件
lsof -u username

方法二:按命令名筛选(如所有 java 进程打开的文件):
lsof -c java

方法三:组合使用,查某用户下所有 python 进程:
lsof -u alice -c python

注意:-c 参数匹配的是进程的 COMMAND 字段开头部分,不是完整路径,因此 lsof -c python3 可能不生效,应写 lsof -c python。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
视频服务器配置参数有哪些
视频服务器配置参数有哪些

视频服务器配置参数有处理器、内存、存储、视频编解码器、网络接口、视频输入输出接口、操作系统、安全性、环境适应性和成本。在搭建视频服务器时,需要根据实际需求和预算,合理选择这些参数,以实现高性能、高稳定性和低成本的目标。

2023.10.17

4680

11

linux的操作系统介绍
linux的操作系统介绍

Linux是一个灵活、稳定、安全的操作系统,适用于各种不同的应用场景,从个人电脑到服务器和嵌入式系统。想了解更多Linux的相关内容,可以阅读本专题下面的文章。

2024.03.20

3646

12

Linux操作系统的主要用途
Linux操作系统的主要用途

Linux操作系统用途广泛,包括:服务器运营,软件开发,科学研究和教育,嵌入式系统,以及个人电脑和笔记本电脑。想了解更多Linux的相关内容,可以阅读本专题下面的文章。

2024.03.21

6419

8

linux操作系统的作用
linux操作系统的作用

linux操作系统在以下领域发挥着关键作用:服务器和云计算;嵌入式系统;个人电脑和笔记本电脑;超级计算;其他领域等等。想了解更多linux操作系统的相关内容,可以阅读本专题下面的文章。

2024.04.12

2995

5

有哪些常见的网络操作系统
有哪些常见的网络操作系统

常见的网络操作系统有windows server、linux、unix、macos server、freebsd、cisco ios、juniper junos和hp-ux等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.12

3544

6

32位操作系统怎么改成62位的
32位操作系统怎么改成62位的

要将 32 位操作系统升级到 64 位,需要遵循以下步骤:1. 检查硬件和软件兼容性;2. 备份数据;3. 获取 64 位操作系统;4. 创建可启动安装媒体;5. 从安装媒体启动计算机;6. 选择“升级”选项;7. 完成安装。

2025.04.02

3503

9

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

100

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

60

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

40

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

ubuntu官方总文档
ubuntu官方总文档

共0课时 | 0人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 20.6万人学习