Ubuntu26.04 通过可执行文件找到程序安装目录

都知道Linux安装软件的方式有多种,如:Ubuntu26.04中使用snap安装,apt源安装,dpkg 安装deb包的方式,还有使用Flatpak来安装等等。

如果只知道一个文件,怎么快速通过该文件找到程序安装目录呢?

1. 先找可执行文件绝对路径(which)

which 程序名

# 示例
which nginx
which firefox

输出类似:

/usr/sbin/nginx

这就是可执行文件本身的位置。


2. 顺带看相关文件(whereis)

whereis 程序名
# 示例
whereis nginx

可能返回:

nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx

能直接看到二进制、配置、库、文档等目录。


3. APT/dpkg 安装的软件:查整个包(dpkg -L)

先用 which 得到路径,再反查包名:

# 1. 得到路径
which nginx

# 2. 反查属于哪个包
dpkg -S /usr/sbin/nginx

#也可以快速操作
dpkg -S $(which nginx)


# 3. 列出该包所有安装文件
dpkg -L nginx

dpkg -L 会列出所有文件与目录,包括配置、日志、数据目录等。


4. 若程序正在运行:查进程(/proc + pwdx)

# 找进程 PID,如果知道程序已经在运行和程序名称
swper@Mt:~$ pidof firefox
6845

# 用 PID 查 exe 链接和工作目录

swper@Mt:~$ ls -l /proc/6845/exe
lrwxrwxrwx 1 swper swper 0 May 30 10:55 /proc/6845/exe -> /opt/firefox/firefox-bin

/proc/[PID]/exe 是指向真实可执行文件的软链接,pwdx 显示进程当前工作目录。


5. 非包管理器安装(手动解压、编译、AppImage)

  • which 结果,上级目录往往就是安装根:
    • /opt/xxx/bin/xxx → 安装根:/opt/xxx
    • ~/.local/bin/xxx → 安装根:~/.local
  • 全局搜索:

sudo find / -name "程序名" 2>/dev/null

6. 手动安装 / 绿色软件:找根目录

如果是解压安装、自己编译的:

readlink -f $(which 程序名)

得到真实路径后,往上退几层就是安装目录

7. Snap / Flatpak

  • Snap:

snap list | grep 程序名
snap info 程序名
# 实际文件通常在 /snap/程序名/
  • Flatpak:

flatpak list | grep 程序名
flatpak info 程序名
# 通常在 /var/lib/flatpak/app/

后面这两个工具我用得少,虽然方便了一些,但相对也占用了资源,我还是比较喜欢apt或者dpkg方式来安装软件。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress