之前写过一个文章,关于网上找到的删除相同目录得脚本,也解释过该脚本的作用,以及他存在的一个缺陷。
于是,打算自己折腾一个脚本。介绍该脚本前,先大致说一下,我写的这个脚本的逻辑
1 查找该文件夹下得文件,然后通过md5sum生成密钥然后输出到指定的一个文件中例如a.txt
2.查看a.txt 通过uniq 找出不同得密钥文件,然后输出到 b.txt
3.比较 a.txt b.txt 找出相同的文件,接着输出到c.txt
4.通过查看c.txt 文件得大小来判断,是否有相同的文件,若有,则删除。若没有则输出:没有相同文件。
下面贴代码
脚本代码#!/bin/bash
#删除文件夹下相同的文件
find . -type f | xargs md5sum | sort > test.txt
cat test.txt | uniq -w 32 | sort > ceshi.txt
comm test.txt ceshi.txt -2 -3 | cut -c 35- | tr '\n' ' ' | tee > del.txt
size=$( wc -c del.txt | awk '{ print $1 }' )
if [ $size -gt 0 ] ; then
cat del.txt | xargs rm
else
echo '没有相同的文件'
fi
rm -rf del.txt test.txt ceshi.txt
网友评论