如何删除文件0=具有srw权限的文件

如何删除文件0=具有srw权限的文件

如何删除以下文件?

srwxrwxrwx   1 patroh root           0 Aug  8 16:11 0=

用户patroh就是我自己。该rm命令不起作用 - 当我执行时它不会给出任何错误rm 0

我不确定我是如何创建这个文件的?

答案1

输出中行开头sls -l将该行标识为 unix 域套接字。最后=的 是套接字的类型指示器,是一个ls -F添加的指示器。所以文件本身就被称为0.

Unix 套接字是一种特殊的进程间通信方法,其行为大多类似于真实的网络套接字,但在文件系统中具有名称,这允许将常用的文件系统访问控制应用于套接字。您拥有的那个“文件”就是这样一个名称。

在打开它们的进程退出后,套接字伪文件往往会徘徊(无用),除非有什么措施小心地删除它们。但它们可以像任何文件一样被删除。 (嗯,至少在 Linux 上是这样。)例如,nc创建一个 unix 套接字并将rm其删除:

$ nc -U -l socket &
[1] 22480
$ ls -l
total 0
srwxr-x--- 1 ilkkachu ilkkachu 0 Aug 10 00:45 socket=
$ rm socket 
$ ls -l
total 0
$ kill %1

如果rm没有给出错误,则应该意味着它能够删除该文件。当然,这不会阻止此后重新创建文件。

相关内容