You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在Ubuntu 14.04的/var/run目录用grep查找.pid文件无输出求助

解决Ubuntu 14.04 LTS下/var/run目录查找.pid文件的问题

嘿,我懂你现在的困扰——用sudo grep -nr '*.pid' .没输出,完全是因为这个命令的用法搞错方向啦!咱们来一步步捋明白:

为什么原来的命令没效果?

grep本质是搜索文件内容的工具,你加的-nr参数是让它递归遍历所有文件,搜索里面的字符串。但你写的'*.pid'作为正则表达式,在grep里的意思是「匹配0个或多个*字符,后面跟着.pid」,这跟你要找「后缀为.pid的文件」完全不是一回事,自然搜不到结果。

正确的解决办法

方法1:用find命令(最推荐,专门用来找文件)

find是Linux里定位文件的标准工具,直接指定文件名规则就行:

sudo find /var/run -type f -name "*.pid"

参数解释:

  • -type f:只找普通文件(排除目录、链接等非文件类型)
  • -name "*.pid":精确匹配后缀为.pid的文件名,加引号是避免shell提前解析通配符

方法2:用grep配合文件名匹配(如果非要用grep)

要是你坚持想用grep,可以用它的--include参数限定搜索的文件类型,再加-l参数只输出匹配的文件名:

sudo grep -r -l --include="*.pid" "." /var/run

这里的.是匹配任意内容(因为我们只是要列出符合.pid后缀的文件,不需要搜索具体内容),--include="*.pid"告诉grep只关注这类文件。

方法3:用ls+grep组合

更简单的方式是先列出目录内容,再筛选文件名:

sudo ls -la /var/run | grep "\.pid$"

\.pid$是正则表达式,\用来转义.(因为.在正则里代表任意字符),$表示匹配行的结尾,刚好对应文件名后缀。

小提醒

Ubuntu 14.04的/var/run是临时文件系统(tmpfs),系统重启后里面的.pid文件会被清空,这是正常现象哦。

内容的提问来源于stack exchange,提问作者Codieroot

火山引擎 最新活动