【问题标题】:bash get package size with dependencies aptbash 获取带有依赖项的包大小 apt
【发布时间】:2020-08-01 12:02:11
【问题描述】:

如何获得循环中所有包裹的总和?
我想我必须使用 bc 但我现在一无所知

#!/bin/bash
a=$(sudo apt install $1 -s 2>/dev/null | grep Inst | awk '{ print $2 }') 
for i in $a; do
    b=$(apt show $i 2>/dev/null | grep Installed-Size | awk '{ print $2 }')  
done

【问题讨论】:

  • > 警告:apt 没有稳定的 CLI 界面。在脚本中谨慎使用。
  • ^ 这个。请改用 dpkg。

标签: bash package apt


【解决方案1】:

您可以使用dpkg-query,而不是使用apt 在脚本中提取有关包的信息,它具有稳定的接口,如 cmets 中所述。

例如,您可以获得包的Installed-Size,每行一个,然后将数字与awk相加:

$ dpkg-query -Wf '${Installed-Size}\n' | awk '{ sum += $0 } END { print sum " KB" }'
4650121 KB

注意,Installed-Size 会给你:

估计安装程序所需的磁盘空间总量 命名包。实际安装大小可能因块大小而异, 文件系统属性,或包维护者采取的行动 脚本。

磁盘空间以估计的整数值给出 安装大小(以字节为单位)除以 1024 并向上取整。

更多关于dpkg-query的信息:man dpkg-query

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 2012-11-14
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 2016-03-04
    相关资源
    最近更新 更多