如何删除名为 \\.\pipe\FC_{6D57D5C3-9CEA-4497-BE57-9E544137A437}_1 的文件

如何删除名为 \\.\pipe\FC_{6D57D5C3-9CEA-4497-BE57-9E544137A437}_1 的文件

我以某种方式在我的主目录中获得了这个文件 \.\pipe\FC_{6D57D5C3-9CEA-4497-BE57-9E544137A437}_1。

尝试使用 rm 和 tab 补全功能进行删除,前缀如下:

  1. ./\
  2. ./\.
  3. ./\.\p

但它似乎完全忽略了这个文件

该文件很奇怪(填充目录):

srwxr-xr-x  X  Y          0 Aug 13 19:28 \\.\pipe\FC_{6D57D5C3-9CEA-4497-BE57-9E544137A437}_1=

并且它不能是 ls-d:

ls: cannot access '\.\pipe\FC_{6D57D5C3-9CEA-4497-BE57-9E544137A437}_1=': No such file or directory

答案1

该文件是一个套接字。它不是真正的文件,除了目录中的空间外,不占用磁盘空间。它是计算机上运行的服务的互联网地址的私人替代品。

从部分来看,它似乎\\.\pipe\是由一个设计用于 Windows 的程序创建的。sudo lsof '\\.\pipe\FC_{6D57D5C3-9CEA-4497-BE57-9E544137A437}_1'在该目录中运行将显示是否有任何东西正在使用它。

我个人会保留该文件,但如果没有使用该文件,删除它是可以的,如果仍在使用,我会很好奇它是什么。然而,至于无法删除它的原因有很多:

首先,制表符补全可能会与文件名中的反斜杠混淆。

将 , 单引号括起来\\.\pipe\FC_{6D57D5C3-9CEA-4497-BE57-9E544137A437}_1,然后再次尝试ls该文件。请注意缺少最后的=

尝试使用ll,然后ll -p在目录中,注意=文件名中的 会消失。=不是文件名的一部分,而是套接字的文件类型指示器。 My-p是 的缩写--indicator-style=slash,它覆盖了别名ll-F,即 的缩写--indicator-style=classify

来自info ls--indicator-style=man页面不完整):

‘file-type’
      Append ‘/’ for directories, ‘@’ for symbolic links, ‘|’ for
      FIFOs, ‘=’ for sockets, and nothing for regular files.  This
      is the same as the ‘--file-type’ option.
‘classify’
      Append ‘*’ for executable regular files, otherwise behave as
      for ‘file-type’.  This is the same as the ‘-F’ or ‘--classify’
      option.

答案2

如果所讨论的文件确实是一个常规文件,而不是@mook765 引用的链接中所建议的特殊文件,那么有两种常规方法。

最简单的方法是使用 GUI 文件管理器列出目录,它将显示该文件并让您通过选择它并告诉它删除该文件来删除它。

如果你想留在命令行上,那么你可以获取文件的 inode 号并使用它来删除它。解释如下这里。您可以使用statls -il显示 inode,并find使用 删除 inode。

答案3

您可以尝试通过查找 inode 来删除文件或文件夹

man ls ... -i, --inode print the index number of each file ...

ls -li 7093614 -rw-r--r-- 1 moi moi 0 Sep 12 16:40 test

find . -inum 7093614 -exec rm -i {} \;

相关内容