在自制软件中获取每个已安装公式的大小?

时间:2016-10-15 23:14:31

标签: macos homebrew

我正在做一些不再需要的软件包清理工作,想知道如何用自制软件做这件事。另外,如果一些软件包依赖于我打算删除的另一个软件包,也会很高兴。

6 个答案:

答案 0 :(得分:8)

它不是很漂亮,但你可以做到

$ brew list | xargs brew info

它会输出符合

的内容
...
/usr/local/Cellar/ant/1.9.6 (1,611 files, 34.8M)
  Poured from bottle on 2016-03-31 at 09:35:41
/usr/local/Cellar/ant/1.9.7 (1,611 files, 34.9M) *
  Poured from bottle on 2016-12-15 at 09:58:56
..

您安装的每个软件包。我确定一些带有grep的向导可以让你在安装了很多水龙头的情况下为你提供一个漂亮的桌子。

答案 1 :(得分:2)

https://gist.github.com/eguven/23d8c9fc78856bd20f65f8bcf03e691b的这个shell片段会帮助您

$ pip freeze > requirements.txt

答案 2 :(得分:2)

从PTao的解决方案出发,这是一个丑陋的改进版本,其中包括所有程序包版本的合并大小的人工可读总和

for pkg in `brew list -f1 | egrep -v '\.|\.\.'`
  do echo $pkg `brew info $pkg | egrep '[0-9]* files, ' | sed 's/^.*[0-9]* files, \(.*\)).*$/\1/' | awk '{print $1;}/[0-9]$/{s+=$1};/[mM][bB]$/{s+=$1*(1024*1024);next};/[kK][bB]$/{s+=$1*1024;next} END { suffix=" KMGT"; for(i=1; s>1024 && i < length(suffix); i++) s/=1024; printf "\t(all versions: %0.1f%s)",s,substr(suffix, i, 1), $3; }'`
done

示例输出:

ack 173.5KB 178.4KB 182.7KB 190.5KB (all versions: 725.1K)
afl-fuzz 556.5KB 561.3KB (all versions: 1.1M)
aircrack-ng 934.2KB 953KB (all versions: 1.8M)
autoconf 1.9MB (all versions: 1.9M)
autojump 325.4KB (all versions: 325.4K)
automake 2.9MB 3.0MB 3MB (all versions: 8.9M)
bash-completion 608.6KB (all versions: 608.6K)
boost 414.6MB 398.7MB (all versions: 813.3M)
cairo 5.9MB 5.9MB (all versions: 11.8M)
cask 166.6KB (all versions: 166.6K)
cmake 31.4MB (all versions: 31.4M)
coreutils 8.5MB 7.9MB 9MB (all versions: 25.4M)
curl 3MB (all versions: 3.0M)
dos2unix 344.4KB 360.5KB (all versions: 704.9K)
ebook-tools 69.6KB 70.5KB (all versions: 140.1K)
eigen 3.5MB 6.5MB (all versions: 10.0M)

答案 3 :(得分:2)

所有冲泡包装的彩色列表,包括尺寸(以及所有版本的整体尺寸)

for pkg in `brew list -f1 | egrep -v '\.|\.\.'`
  do echo $pkg `brew info $pkg | egrep '[0-9]* files, ' | sed 's/^.*[0-9]* files, \(.*\)).*$/\1/' | awk '{print "\033[1;32m"$1;}/[0-9]$/{s+=$1};/[mM][bB]$/{s+=$1*(1024*1024);next};/[kK][bB]$/{s+=$1*1024;next} END { suffix="  KBMBGBTB"; for(i=1; s>1024 && i < length(suffix); i+=2) s/=1024; printf "\033[0m\t(all versions: \033[33m%0.1f %s\033[0m)",s,substr(suffix, i, 2), $3; }'`
done

输出看起来像这样:

brew list with size colored

答案 4 :(得分:1)

brew list | xargs -n1 -P8 -I {} \                                                                             
    sh -c "brew info {} | egrep '[0-9]* files, ' | sed 's/^.*[0-9]* files, \(.*\)).*$/{} \1/'" | \
    sort -h -r -k2 - | column -t

它按排序形式(按尺寸)显示以下冲泡物: enter image description here

答案 5 :(得分:0)

在 Homebrew 2.7.5 版本上 以下命令抛出错误

brew list | xargs brew info | egrep --color '\d*\.\d*(KB|MB|GB)'

错误:调用 brew list 仅列出公式被禁用!改用 brew list --formula

将 --formula 添加到 brew list 命令后,它起作用了。

brew list --formula | xargs brew info | egrep --color '\d*\.\d*(KB|MB|GB)'