终端是查看软件安装包元数据最直接的方式,需按系统和安装渠道(pkg、app store、homebrew、deb/rpm)调用对应命令:macos用pkgutil查.pkg注册信息、mdls/defaults查.app元数据;linux debian系用dpkg/dpkg-query查.deb;rpm系用rpm查.rpm包详情。

终端是查看软件安装包元数据最直接的方式,不同系统和安装来源对应不同命令,关键在于区分安装渠道(pkg、App Store、Homebrew、deb/rpm)并调用对应工具。
macOS:查.pkg安装包的注册信息
macOS 通过 Installer 安装的 .pkg 包会在系统中注册 receipt,pkgutil 是唯一能读取该数据库的原生命令:
- 列出所有已注册 pkg 包 ID:
pkgutil --pkgs - 筛选含关键词的包,例如查 Zoom:
pkgutil --pkgs | grep -i zoom - 若安装在外置卷(如 /Volumes/MyDisk),需显式指定:
pkgutil --pkgs --volume /Volumes/MyDisk - 查某个包详情(含安装路径、时间、版本):
pkgutil --pkg-info com.google.Chrome
macOS:查.app应用的元数据(名称、版本、安装时间)
应用 Bundle 中的 Info.plist 和 Spotlight 索引共同提供结构化元数据:
- 获取显示名称与版本号:
mdls -name kMDItemDisplayName -name kMDItemVersion "/Applications/Safari.app" - 查安装时间(Spotlight 首次识别时间):
mdls -name kMDItemDateAdded "/Applications/Notes.app" - 若返回为空,先启用索引:
mdutil -i on /Applications,再手动导入:mdimport "/Applications/Notes.app" - 直接读 Info.plist 版本字段(绕过 Spotlight):
defaults read "/Applications/TextEdit.app/Contents/Info.plist" CFBundleShortVersionString
Linux(Debian/Ubuntu/麒麟):查 deb 包元数据
dpkg 数据库存储安装时间(秒级时间戳)、版本、架构等完整信息:
- 查单个包详细信息(含安装时间、版本、状态):
dpkg -s firefox - 提取安装时间与版本组合输出:
dpkg-query -f '${Install-Time}\t${Version}\n' -W firefox - 将时间戳转为可读格式:
date -d @$(dpkg-query -f '${Install-Time}' -W firefox) 2>/dev/null - 查全部已安装包列表(含状态码):
dpkg -l,其中 ii 表示已安装且配置完成
Linux(CentOS/RHEL/麒麟 RPM 版):查 rpm 包元数据
rpm 数据库记录最权威的安装时间与构建版本,支持精确查询:
- 查包完整信息(含 Install Date 和 Version):
rpm -qi nginx - 仅看安装时间(倒序,最近20个):
rpm -q --last | head -n 20 - 仅看版本号(含 release):
rpm -q --queryformat '%{VERSION}-%{RELEASE}\n' docker-ce - 查某包文件安装路径:
rpm -ql httpd











