首页 > Sysadmin > 正文

Linux 中查找 Nginx 安装位置的 5 种方法

huyuanwen 2026-11-03 Sysadmin

Nginx 装完忘了装在哪?本文用 which、whereis、find、locate、dpkg 五类方法在 Ubuntu 24.04 实测,并给出适用场景与回滚建议。

先看 which 和 whereis

which nginx
whereis nginx

which 只返回 PATH 里第一个可执行文件;whereis 还会把配置目录和 man 页一起列出来。实测 nginx 时两者结果不同,前者只给 /usr/sbin/nginx,后者还带出了 /etc/nginx 与 /usr/share/man/man8/nginx.8.gz [3][4]。

用 find 全盘搜

sudo find / -name nginx -type f 2>/dev/null

find 不依赖索引,实时遍历文件系统。缺点是慢,而且输出很多无关项,建议加 -type f 和路径裁剪 [7]。

用 locate 快速定位

sudo updatedb
locate nginx | grep -E '^/usr/.*nginx$'

locate 基于数据库,速度远快于 find。首次使用要先跑 updatedb 建库;数据库默认每天更新一次 [5][6]。

用 dpkg 查包内文件

dpkg -L nginx | grep -E 'sbin/nginx|/etc/nginx|/var/log/nginx'

RPM 系换 rpm -ql nginx。这个方法直接告诉你包装了哪些路径,最接近“真相” [2]。

常见路径与默认目录

路径 用途
/usr/sbin/nginx 主程序
/etc/nginx 配置目录
/var/log/nginx 日志目录
/usr/share/nginx 静态资源

如果你不是从系统包安装的,上述路径可能被覆盖到 /usr/local 或自定义前缀 [1]。

排错速查

现象 原因 处理
which nginx 无结果 不在当前 PATH,或未安装 用 find / -name nginx 全盘搜
whereis nginx 只有 man 页 二进制路径被移走或链接失效 检查软链接与 systemd 服务文件
locate 找不到刚装的 nginx 数据库还没更新 手动跑 updatedb 再查
dpkg -L 报未安装 源码编译或二进制包安装 改用 find 或检查自定义前缀

局限:WSL 与容器里路径和宿主不同,命令能跑但结果不能直接套用宿主机。


参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测,个别条目(未装工具/安装类命令)仅核对官方文档,未实际执行。