April 8, 2020

UNIX系统下删除老旧Maven依赖包的方法

版权声明:本文为博主原创文章,转载请注明原文出处!

写作时间:2020年4月8日晚


UNIX系统下删除老旧Maven依赖包的方法

笔记本是macOS,磁盘只有256,Maven下载的依赖包,特别是老旧的JAR很占空间,如何使用一行命令删除这些依赖包呢?

基本思想是使用find命令找出来给定时间段没有使用过的JAR包(通过POM文件的时间戳判断),然后使用rm命令进行删除。

下面的命令通过遍历~/.m2文件夹下修改时间大于5天的以.pom为扩展名的文件,然后删除该POM文件所在的父文件夹。

1
find ~/.m2 -ctime +5d -iname '*.pom' | while read pom; do parent=`dirname "$pom"`; rm -rf "$parent"

下面稍微看一下find命令,我们可以通过-atime-ctime分别给出查找文件的最后访问时间获最后修改时间到当前的时间间隔(时间单位可以是s,m,h,d,w,分别代表秒,分钟,小时,天和周)。此外,我们可以直接通过-amin-cmin分别指定以分钟为单位的时常。具体命令的使用可以使用man find进行查看。

最后要说的是,在进行正式删除之前建议通过Dry Run查看一下那些文件要删除,不要删错了以后后悔莫及!
所以在正式删除之前,先试试下面的命令吧!

1
find ~/.m2 -ctime +5d -iname '*.pom' | while read pom; do parent=`dirname "$pom"`; echo "$parent"; done > output.txt

Windows下的删除没有试过,不过应该可以使用对应的BAT批处理相关命令进行操作。如果对于Windows 10,我们可以采用Linux子系统(WSL)进行操作。