- 当你想修改某个文件,却被提示文件正在被修改,类似如下提示,
go
Found a swap file by the name ".index.ts.swp"
- 当你想删除某个日志文件,却因为还有地方持续写入,执行rm 操作却迟迟无法删除,
- 甚至某一天,当你本地想用git提交代码时,却被告知有git进程正在进行操作,从而存在锁.git/index.lock,git暂时无法提交。
这时很烦躁,也许简单粗暴的关闭命令行或者重启机器往往能解决问题。但是难道你不好奇,到底是谁在操作啊?是哪个进程占用了啊。
lsof
要查看哪个进程正在操作一个特定的文件,你可以使用 lsof
(List Open Files)命令。lsof
是一个用于列出当前系统中打开的文件及其相关进程的命令行工具。
使用 lsof
可以查看哪个进程正在操作特定文件:
bash
lsof /home/user/main/.index.ts.swp
这个命令将列出所有正在操作该文件的进程。如果文件被某个进程占用,将看到类似以下的输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 1234 zhangsan 4uW REG 8,1 0 123456 /home/user/main/.index.ts.swp
在这个示例中,vim
是正在操作该文件的进程,1234
是进程 ID(PID)。
至此,烦人的占用者找到了,接下来便可给其送上一记重拳 !
go
kill -9 1234