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


18

我有一个目录条目如下

srwxr-xr-x  1 ubuntu ubuntu    0 May 29 05:03 0.0.0.0=

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


远程相关的问题:askubuntu.com/questions/626634/converting-a-file-to-directory/…答案上有一个脚本,用于解释和计算inode模式。
Helio

Answers:


28

ls手册

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

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

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

您可能需要使用sudolsof,如果插座是通过运行为其他用户的进程打开:

$ 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

3
您也可以使用fuser文件来确定进程。
Gardenhead '17

8

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

$ file /tmp/ssh-k405k6mf0/agent.1221
/tmp/ssh-k405k6mf0/agent.1221: socket

甚至mimetype

$ mimetype /tmp/ssh-k405k6mf0/agent.1221
/tmp/ssh-k405k6mf0/agent.1221: inode/socket

1

总而言之,这种文件类型也称为特殊文件,在UNIX中存在多个特殊文件(所有这些文件作为ls手册的一部分列出,有用的代码片段由muru提供)。

进一步阅读-https://www.linux.com/blog/file-types-linuxunix-explained-detail


3
您的回答没有错。为了使它更好,请考虑在答案中添加其他信息-例如它是一个套接字文件。链接可以提供额外的信息,但是您的答案应该能够独立存在而无需链接,并且仍然可以提供完整的响应。
克莱顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.