如何保持 Homebrew 应用程序清洁且最新 - 如何查找不再使用的已安装应用程序

如何保持 Homebrew 应用程序清洁且最新 - 如何查找不再使用的已安装应用程序

我怎么知道我是否可以或应该清理任何东西?我安装了大量应用程序,而 brew 更新需要很长时间。

我至少想找到我不再使用的应用程序。

我做到了brew autoremove这里有一个问题,它找到并删除了几个文件,但没有明显的区别brew update

我可以brew list,但其中很多都是库,而且数量太多,我实在不想brew info app在每个库上都操作。肯定有办法区分我安装的应用程序和库吧?

答案1

一个 Perl 脚本,用于获取位于 /usr/local/bin 中的链接目标的访问时间。然后,它会最后显示最早访问的文件。

但我不知道这是否是最好的答案,或者是否可以在自制软件中完成某些操作。我甚至不知道这是否有必要 - 是否可以加快升级过程?

#!/usr/bin/perl
# Looking for old homebrew apps to get rid of

use strict;
use warnings;
use File::Spec;
use POSIX qw(strftime);

my $dir = '/usr/local/bin';

my @sorted_by_oldest_used =
    sort { $b->[2] <=> $a->[2] }
    map {
        my $t = readlink;
        $t = "$dir/$t" if not File::Spec->file_name_is_absolute($t);
        $t =~ /Cellar|Cask/ ? [ $_, $t, -A $t ] : ()
    }
    grep { -l }
    glob "$dir/*";

foreach my $res_ar (reverse @sorted_by_oldest_used) {
    my $date = strftime("%Y_%m_%d_%H:%M:%S", localtime(time - $res_ar->[2] * 24 * 60 * 60));
    printf "%s\t%s\n", $date, $res_ar->[0];
}

代码来源:我在 Stackoverflow 上问过的问题,反响比我写的剧本更好。

相关内容