本文介绍了为什么bash无法识别套接字文件的存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Linux机器上,我要检查是否存在特定的套接字文件.我知道套接字文件存在,但是我对bash的检查并没有向我显示:

On a Linux box I want to check if a specific socket file exists. I know the socket files exists, but my checks in bash don't show that to me:

$ ls -l /var/run/supervisor.sock
srwxrw-rw- 1 root root 0 Jun  3 13:30 /var/run/supervisor.sock  # <== THE FILE EXISTS!!
$ if [ ! -f /var/run/supervisor.sock ]; then echo 'file does not exist!'; fi
file does not exist!

为什么哦,为什么bash无法看到文件存在?

Why oh why can't bash see that the file exists?

推荐答案

http: //www.tldp.org/LDP/abs/html/fto.html

使用-S测试其是否为套接字. -f用于常规文件.

Use -S to test if its a socket. -f is for regular files.

请参见man 1 test:

   -e FILE
          FILE exists
   -f FILE
          FILE exists and is a regular file
   ...
   ...
   -S FILE
          FILE exists and is a socket

这篇关于为什么bash无法识别套接字文件的存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 05:44