📅  最后修改于: 2023-12-03 15:06:31.320000             🧑  作者: Mango
在进行 Git 版本控制的过程中,有时候会遇到一些重复的文件,这些文件可能是因为误操作或者其他原因造成的。为了保持代码库的整洁性和减少冲突,我们需要删除这些重复的文件。下面给出一个 Shell/Bash 脚本的实现方法。
$ git clone https://github.com/username/repo.git
$ cd repo
$ find . -type f ! -path './.git/*' -exec md5sum {} \; | sort | uniq -w32 --all-repeated=separate
上述命令的作用是在当前目录及其子目录下查找所有类型为文件的文件,并且排除了 .git
目录下的文件,然后对其进行 MD5 校验处理。最后使用 sort
和 uniq
命令对相同的文件进行去重处理并输出。
$ find . -type f ! -path './.git/*' -exec md5sum {} \; | sort | uniq -w32 --all-repeated=separate \
| awk '{print $NF}' | xargs -I{} sh -c 'rm "{}"'
上述命令的作用是在之前查找到的重复文件列表中,使用 awk
命令获取到每个文件名,并使用 xargs
命令调用 rm
命令进行删除操作。
find
命令中的路径及其他参数进行修改