找出当前目录所有相同文件的脚本

sh/bash/dash/ksh/zsh等Shell脚本
回复
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

找出当前目录所有相同文件的脚本

#1

帖子 JiangHui » 2009-08-27 17:55

下了个壁纸的压缩包,发现里面很多一样的,写了这个脚本

代码: 全选

#!/bin/sh

help()
{
    echo "找出当前目录下所有相同文件"
    echo "      如果文件较多或较大,会多花一点时间,请耐心等待"
    echo "用法: findSame [选项]"
    echo "    -h, --help 显示帮助并退出 "
    echo "    -v, --version 显示版本并退出"
    echo "    -f, 仅查找当前目录,不包括子目录"
    echo "    -F, 查找当前目录,包括子目录"
    exit 0
}

ver()
{
    echo "findSame    version 0.1"
    exit 0;
}

funFindAll()
{
    find . ! -type d -exec md5sum '{}' \; | sort | uniq -w 22 -D 
    exit 0
}

funFind()
{
    find ./* -maxdepth 0 ! -type d -exec md5sum '{}' \; | sort | uniq -w 22 -D
    exit 0
}

if [ $# -eq 0 ]
then 
    help
fi

while [ -n "$1" ]
do
    case $1 in
        -h) help
        ;;
        --help) help
        ;;
        -v) ver
        ;;
        --version) ver
        ;;
        -f) funFind
        ;;
        -F) funFindAll
        ;;
        *) echo "参数错误" &&  help
    esac
done


findSame.zip
(624 Bytes) 已下载 38 次
头像
蓝蓝
帖子: 953
注册时间: 2007-06-09 9:19
来自: 上海

Re: 找出当前目录所有相同文件的脚本

#2

帖子 蓝蓝 » 2009-08-27 17:59

windows能用?
最近都很少用U
太阳好毒…….
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: 找出当前目录所有相同文件的脚本

#3

帖子 JiangHui » 2009-08-27 18:01

蓝蓝 写了:windows能用?
最近都很少用U
能,只要你把bash等移植到windows下 :em05
头像
phuc日本狗2
帖子: 434
注册时间: 2009-06-21 9:48

Re: 找出当前目录所有相同文件的脚本

#4

帖子 phuc日本狗2 » 2009-08-27 18:03

我原来做了一个程序可以找到整块硬盘下所有相同的文件,可惜我把代码弄丢了
要不然移植到linux下也很容易, c++写的
分清两种高级5M:一种是日控精怪形;另一种是利欲凶煞形;
另有中及偏下杂毛:滋情网电驴及其骡子品种。
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: 找出当前目录所有相同文件的脚本

#5

帖子 JiangHui » 2009-08-27 18:07

phuc日本狗2 写了:我原来做了一个程序可以找到整块硬盘下所有相同的文件,可惜我把代码弄丢了
要不然移植到linux下也很容易, c++写的
整块,太猛了……不知道资源占用怎么样
在 / 下执行这个脚本估计也可以做到,不过八成会很卡了……
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 找出当前目录所有相同文件的脚本

#6

帖子 delectate » 2009-08-27 18:14

移贴至shell区
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: 找出当前目录所有相同文件的脚本

#7

帖子 JiangHui » 2009-08-27 18:16

delectate 写了:移贴至shell区
这么简单的东西移到那么专业的地方不合适吧…还是拿来灌水好了 :em09
头像
phuc日本狗2
帖子: 434
注册时间: 2009-06-21 9:48

Re: 找出当前目录所有相同文件的脚本

#8

帖子 phuc日本狗2 » 2009-08-27 18:31

JiangHui 写了:
phuc日本狗2 写了:我原来做了一个程序可以找到整块硬盘下所有相同的文件,可惜我把代码弄丢了
要不然移植到linux下也很容易, c++写的
整块,太猛了……不知道资源占用怎么样
在 / 下执行这个脚本估计也可以做到,不过八成会很卡了……
很快,直接调用最底层的api写的,算法我自己搞的,搜一个盘也就是差不多几十秒的时,可能一分钟左右,我不记得了。一个小孩的主意,然后我做的代码,他估计现在用visual basic封装了一下用来出售。
分清两种高级5M:一种是日控精怪形;另一种是利欲凶煞形;
另有中及偏下杂毛:滋情网电驴及其骡子品种。
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 找出当前目录所有相同文件的脚本

#9

帖子 delectate » 2009-08-27 18:34

md5计算

方法很好,可惜速度慢。

而且有的图片看起来一样,但是md5就是不一样

还是判重方便。
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 找出当前目录所有相同文件的脚本

#10

帖子 c\nc » 2009-08-27 18:53

有个工具叫 fdupes
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: 找出当前目录所有相同文件的脚本

#11

帖子 xzap » 2009-08-29 1:05

c\nc 写了:有个工具叫 fdupes
完全正确,效率和md5可不可同日而语的
回复