如何在命令行中测试文件是否为套接字?

如何在命令行中测试文件是否为套接字?

如标题所述。有没有办法在命令行中测试文件是否是套接字?通过测试,我的意思是我是否可以从 stdout 中判断,而不是像在 bash 脚本中那样以编程方式判断,尽管这也很好。顺便说一句,我在 Mac 上(偶尔命令会有所不同)。谢谢!

答案1

套接字在第一个权限标志中有“s”:

ls -la X0 
srwxrwxrwx 1 paul hum 0 Jul 14 14:48 X0

您可以使用以下-S开关在 bash 中测试:

if  [ -S /my/file.socket ] ; then
   # stuff
fi

或者find可以使用该命令来查找目录中的任何套接字:

find  . -type s

答案2

测试-S /var/run/some_socket_file

如果 $? == 0,则该文件为套接字文件。

相关内容