- 當(dāng)你想修改某個(gè)文件各淀,卻被提示文件正在被修改,類似如下提示瞭空,
Found a swap file by the name ".index.ts.swp"
- 當(dāng)你想刪除某個(gè)日志文件揪阿,卻因?yàn)檫€有地方持續(xù)寫入,執(zhí)行rm 操作卻遲遲無法刪除咆畏,
- 甚至某一天南捂,當(dāng)你本地想用git提交代碼時(shí),卻被告知有g(shù)it進(jìn)程正在進(jìn)行操作旧找,從而存在鎖.git/index.lock溺健,git暫時(shí)無法提交。
這時(shí)很煩躁,也許簡(jiǎn)單粗暴的關(guān)閉命令行或者重啟機(jī)器往往能解決問題鞭缭。但是難道你不好奇剖膳,到底是誰在操作啊岭辣?是哪個(gè)進(jìn)程占用了啊吱晒。
lsof
要查看哪個(gè)進(jìn)程正在操作一個(gè)特定的文件,你可以使用 lsof
(List Open Files)命令沦童。lsof
是一個(gè)用于列出當(dāng)前系統(tǒng)中打開的文件及其相關(guān)進(jìn)程的命令行工具仑濒。
使用 lsof
可以查看哪個(gè)進(jìn)程正在操作特定文件:
lsof /home/user/main/.index.ts.swp
這個(gè)命令將列出所有正在操作該文件的進(jìn)程。如果文件被某個(gè)進(jìn)程占用偷遗,將看到類似以下的輸出:
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
在這個(gè)示例中墩瞳,vim
是正在操作該文件的進(jìn)程,1234
是進(jìn)程 ID(PID)氏豌。
至此喉酌,煩人的占用者找到了,接下來便可給其送上一記重拳 泵喘!
kill -9 1234