删除repo中大文件

平常使用repo拉代码,repo sync 后发现 .repo文件非常大,一般有150G,而项目的全代码也不会超过40G,所以有必要去减少.repo文件的大小。
通过一番查找,下面这个文件比较大:

.repo/project-objects/

而这些文件下面,pack文件是最大的文件.一般都是1-6G。

.repo/project-objects/***.git/objects/pack/pack-5ac231755ddcbc2727aca987f32e61bad220c0fe.pack

所以想办法将他们删除。删除命令如下:

find .repo/ -name "*pack" -type f |xargs -I {} du -s {}|sort -k 1 -n|tail -10|awk '{print $2}'| xargs -I {} rm -vf {}

或者进入.repo目录执行命令

find . -name "*pack" -type f |xargs -I {} du -s {}|sort -k 1 -n|tail -10|awk '{print $2}'| xargs -I {} rm -vf {}

上面的命令解释一下:

  1. 首先扫描.repo下所有以pack文件名结尾的文件
  2. 根据扫描的文件分别计算他们的占用大小。
  3. 再将它们进行排序
  4. 选出最大的10个文件
  5. 通过awk工具筛选出第2列的文件路径
  6. 将文件删除,并现实删除结果

网上其他人的方法都是在git 压缩,比如命令 git gc --aggressive.但是对于repo来说,效果不明显。我的这个方法可以放心使用,不会导致git 提交不了。
通过这个方法能有效的减少.repo文件的总大小,一般可以从100G的大小减少到20G左右,甚至不足1GB。


2018.11.20
有一个问题,就是你下次repo sync时,那些删除的文件会再次下载。如果您有方法保证删除的文件不再同步,请留言。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
*.repo文件是在Linux系统下使用yum命令时,yum用来配置所需软件包的源信息的文件。该文件通常位于/etc/yum.repos.d/目录下,其文件名以.repo结尾。 *.repo文件的格式是INI格式,其主要包含了以下几个部分: 1. 仓库的基本信息 该部分包含了仓库的名称、描述、仓库的URL地址和仓库的类型等基本信息,例如: ``` [base] name=CentOS-$releasever - Base baseurl=http://mirror.centos.org/$contentdir/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 ``` 2. 软件包的策略信息 该部分包含了软件包的更新策略、安装策略和清除策略等信息,例如: ``` [updates] name=CentOS-$releasever - Updates baseurl=http://mirror.centos.org/$contentdir/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 ``` 3. 软件包的过滤信息 该部分用于指定要从该仓库中获取的软件包,例如: ``` [epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=https://download.fedoraproject.org/pub/epel/7/$basearch gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 exclude=python* ``` 其中,exclude字段用于指定不需要从该仓库中获取的软件包。 4. 其他配置信息 该部分包含了其他的配置信息,例如: ``` [extras] name=CentOS-$releasever - Extras baseurl=http://mirror.centos.org/$contentdir/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 ``` 在该部分中,可以配置一些其他的选项,例如enabled字段用于指定该仓库是否启用。 以上是*.repo文件的基本格式和内容,通过修改*.repo文件,可以更改yum软件包管理器中软件包的源信息,以实现更好的软件包管理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值