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

如何通过软件包名称获取对应tar包文件名(含缓存目录内文件)

如何通过软件包名称获取对应tar包文件名(含缓存目录内文件)

嘿,这个需求我经常碰到,给你分享两个靠谱的方法,分别对应已安装包和未安装包的场景:

方法一:针对已安装的包(用pacman -Q系列命令)

如果你已经把包装到系统里了,要找默认缓存目录(/var/cache/pacman/pkg/)里对应的tar包,直接用这条命令就行:

find /var/cache/pacman/pkg/ -name "$(pacman -Qq <你的包名>)-*.pkg.tar.*"

简单解释下:

  • pacman -Qq <包名>会输出纯包名(不带版本号)
  • 后面的通配符会匹配缓存里所有以该包名开头、后缀为.pkg.tar.xz或.pkg.tar.zst的文件(这两种是Arch系最常见的包格式)

另外,要是你只想知道包的完整文件名(不纠结是否在缓存里),也可以运行pacman -Qii <包名>,在输出里找Installed From那一行,后面就是该包的tar包文件名。

方法二:针对未安装的包(用pacman -F或pacman -Si)

如果包还没安装,先同步下软件包数据库确保信息是最新的:

pacman -Fy

然后用pacman -Si <包名>查看包的详细信息,输出里的Filename字段就是该包在软件源里的tar包路径,比如:

Filename           : core/x86_64/bash-5.2.15-1-x86_64.pkg.tar.zst

要是之前下载过这个包,缓存目录里对应的文件就是/var/cache/pacman/pkg/bash-5.2.15-1-x86_64.pkg.tar.zst。

要是你想用pacman -F实现,也可以这么写(不过不如pacman -Si直观):

pacman -Fs <包名> | awk '{print $NF}' | grep -E "\.pkg\.tar\.(xz|zst)$"

备注:内容来源于stack exchange,提问作者Dumb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 15:55:29