bash shell脚本中Md5 sum的结果不正确

时间:2013-11-27 18:32:58

标签: linux bash shell md5

我缺少一些本脚本运行时应该存档的图像。我想这可能与我的缩进或我的Md5总和有关。我已经尝试了我能想到的一切。

这里的代码没有正确的缩进:

#!/bin/sh

if [ ! -d "$1" ]; then
    echo Directory "$1" cannot be found. Please try again.
    exit
fi

if [ $# -eq 1  ]; then
    echo "usage: Phar image_path archive_path"
    exit
fi

if [ -d "$2" ]; then
    echo "archive exists"
else
    echo "the directory 'archive' does't exist. Creating directory 'archive'."
    mkdir -p ~/archive 
fi

find $1 -iname "IMG_[0-9][0-9][0-9][0-9].JPG" | cat > list.txt

[ -f ~/my-documents/md5.txt ] && rm md5.txt || break 
while read line;
    do md5sum $line | xargs >> md5.txt 
done < list.txt 

sort -k 1,1 -u md5.txt | cat > uniquemd5.txt 
cut -d " " -f 2- uniquemd5.txt > uniquelist.txt 

sort uniquelist.txt -r -o uniquelist.txt
for line in $(cat uniquelist.txt)
do
    file=$(basename $line) path="$2/file"

    if [ ! -f $path ];
    then 
        cp $line $2 
    else 
        cp $line $path.JPG 
    fi 

    rm uniquelist.txt md5.txt uniquemd5.txt list.txt

done

1 个答案:

答案 0 :(得分:1)

此循环

while read line;
    do md5sum $line | xargs >> md5.txt 
done < list.txt

应该是

while read line;
    do md5sum "$line" 
done < list.txt > md5.txt

引用参数扩展,并且不清楚为什么需要。