我以某种方式在我的主目录中获得了这个文件 \.\pipe\FC_{6D57D5C3-9CEA-4497-BE57-9E544137A437}_1。
尝试使用 rm 和 tab 补全功能进行删除,前缀如下:
- ./\
- ./\.
- ./\.\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 号并使用它来删除它。解释如下这里。您可以使用stat
或ls -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 {} \;