zoukankan      html  css  js  c++  java
  • linux中.nfsxxxx引起的文件无法删除

      一个linux系统中的某个文件夹无法删除,使用ls -al查看有1个.nfsxxxx的文件无法删除。

           使用lsof +D /filepath/,查看到文件被一个进程一直占用。

           再使用ps -aux | grep pid,查看是一个java进程一直在占用,杀掉这个进程后,文件夹正常删除。

           

      What is this .nfsxxxxxxxxxxxxxx file and why can’t I remove it?

      Under unix, if you remove a file that a currently running process still has open, the file isn’t really removed. Once the process closes the file, the OS then removes the file handle and frees up the disk blocks. This process is complicated slightly when the file that is  open and removed is on an NFS mounted filesystem. Since the process that has the file open is running on one machine (such as a workstation in your office or lab) and the files are on the file server, there has to be some way for the two machines to communicate   information about this file. The way NFS does this is with the .nfsNNNN files. If you try to remove one of these file, and the file is still open, it will just reappear with a different number. So, in order to remove the file completely you must kill the process that has it open.
      If you want to know what process has this file open, you can use ‘lsof .nfs1234’. Note, however, this will only work on the machine where the processes that has the file open is running. So, if your process is running on bobac and you run the lsof on some other burrow machine, you won’t see anything.

      For example:

      % echo test > foo
      % tail -f foo
      test
      ^Z
      Suspended
      % rm foo
      % ls -A
      .nfsB23D
      % rm .nfsB23D
      % ls -A
      .nfsC23D
      % lsof .nfsC23D
      COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
      tail 1257 robh 0r VREG 176,6 5 3000753 .nfsC23D
      %

      So, once you have located and killed the process that has the file open, the .nfs file will go away automatically. In the above example, when you kill the tail process, the .nfsC23D file will disappear.

      The useful tools: ps, lsof

  • 相关阅读:
    关于ajaxfileupload的使用方法以及一些问题
    vs里根据json快速创建对应类的方法
    20175227张雪莹 2018-2019-2 《Java程序设计》第四周学习总结
    关于:socket阻塞、非阻塞,同步、异步、I/O模型
    推挽输出理解
    使用指针做形参来解决函数的副本机制
    c语言副本机制
    开关电源电容选择
    MFC入门示例之水平滚动条和垂直滚动条(CScroll Bar)
    MFC入门示例之组合框(CComboBox)、列表框(CListBox)
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/10433656.html
Copyright © 2011-2022 走看看