You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Shell脚本获取Linux中运行的Nginx配置文件目录

提取Nginx配置文件所在目录的命令方案

你当前的命令能获取到完整的配置文件路径,但要得到目录部分,可通过以下几种方式修改:

方案一:用dirname提取目录

这是最直观的方式,利用dirname命令专门获取文件路径的上级目录:

nginx -V 2>&1 | grep -o '--conf-path=[^ ]*' | cut -d '=' -f2 | dirname
  • 修正了原命令中grep的正则:--conf-path=[^ ]*能正确匹配从--conf-path=开始到下一个空格为止的完整路径(原正则--conf-path=(.conf)存在语法错误,且无法匹配真实路径格式)
  • cut -d '=' -f2提取等号后的完整路径
  • 最后通过dirname输出该路径的目录部分

方案二:用sed直接移除文件名

如果不想多管道调用dirname,可以用sed直接替换掉路径末尾的/nginx.conf:

nginx -V 2>&1 | grep -o '--conf-path=[^ ]*' | sed 's/\/nginx.conf$//'
  • sed 's/\/nginx.conf$//'表示匹配行尾的/nginx.conf并将其替换为空,剩下的就是目标目录

方案三:单步sed完成提取

也可以不依赖grep和cut,直接用sed一次性提取目录:

nginx -V 2>&1 | sed -n 's/.*--conf-path=\(.*\)\/nginx.conf.*/\1/p'
  • -n表示只输出匹配的行
  • 正则.*--conf-path=\(.*\)\/nginx.conf.*匹配包含--conf-path=的行,捕获/nginx.conf之前的部分
  • \1引用捕获的内容并输出

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:50:27