谁打开了我的文件-lsof来帮忙
有时当我们删除一个文件时会报文件正被占用,无法删除,在Mac中具体会报“OSStatus错误-47”的信息。原来我碰见这种情况一般都是要么重启要么将所有应用关掉,也没去深究,今天又碰到这个问题,为了清楚究竟是谁在占用我的文件,于是研究了一下,发现可以用lsof命令列出已打开的文件和打开它们的进程,但是只运行lsof命令只会输出所有已打开的文件,信息很多,并不方便我们查看,于是我又运行了一下“man
lsof”看了一下lsof的文档,发现通过+d选项可以指定查看具体哪个目录,于是运行
会产生这样的输出: 1
lsof +d target
第一列显示的就是哪一个命令打开了我们的文件,第二列就是对应的PID了,接下来就简单了,直接运行
现在再去删文件,整个世界是不是清静了?1
kill pid