我怎么知道我是否可以或应该清理任何东西?我安装了大量应用程序,而 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 上问过的问题,反响比我写的剧本更好。