'ls' 输出中 srwxr-xr-x 中的 's' 是什么意思?

hol*_*hol 19 permissions files directory ls

我有一个目录条目如下

srwxr-xr-x  1 ubuntu ubuntu    0 May 29 05:03 0.0.0.0=
Run Code Online (Sandbox Code Playgroud)

我不知道这s意味着什么,而且这是一个奇怪的文件名,我想知道它有什么用。这可能是垃圾还是有意义的东西?

mur*_*uru 29

ls手册

文件类型是以下字符之一:

'-' 常规文件
'b' 块特殊文件
'c' 字符特殊文件
'C' 高性能(“连续数据”)文件
'd' 目录
'D' 门(Solaris 2.5 及更高版本)
'l' 符号链接
'M ' 离线(“迁移”)文件(Cray DMF)
'n' 网络特殊文件(HP-UX)
'p' FIFO(命名管道)
'P' 端口(Solaris 10 及更高版本)
's' 套接字
'?' 其他一些文件类型

所以,这是一个Unix 套接字。这可能是有意义的,因为套接字是由进程创建来侦听请求的。使用lsof以确定哪些进程正在使用套接字。

如果套接字由以其他用户身份运行的进程打开,您可能需要使用sudowith lsof

$ lsof /run/snapd.socket
$ sudo lsof /run/snapd.socket
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF   NODE NAME
systemd     1 root  197u  unix 0xffff99dc9afa3000      0t0 191670 /run/snapd.socket type=STREAM
snapd   18626 root    8u  unix 0xffff99dc9afa3000      0t0 191670 /run/snapd.socket type=STREAM
Run Code Online (Sandbox Code Playgroud)

  • 您还可以使用 [`fuser`](https://linux.die.net/man/1/fuser) 来确定使用文件的进程。 (3认同)

Rav*_*ina 8

您也可以使用file命令来确定其类型:

$ file /tmp/ssh-k405k6mf0/agent.1221
/tmp/ssh-k405k6mf0/agent.1221: socket
Run Code Online (Sandbox Code Playgroud)

甚至mimetype

$ mimetype /tmp/ssh-k405k6mf0/agent.1221
/tmp/ssh-k405k6mf0/agent.1221: inode/socket
Run Code Online (Sandbox Code Playgroud)