1
file=$3
#Using $3 as I am using 1 & 2 in the rest of the script[that works]
file_hash=md5sum "$file" | cut -d ' ' -f l
#generates hashes for file

for a in /path/to/source/* #loop for all files in directory
do
    if [ "$file_hash" == $(md5sum "$a" | cut -d ' ' -f l) ]:
    #if the file hash is equal to the hash generated then file is copied to path/to/source
    then cp "file" /path/to/source/*
    else cp "$file" "file.JPG" mv "file.JPG" /path/to/source/$file #otherwise the file renamed as file.JPG so it is not overwritten
    fi 
done 

誰でもこのコードで私を助けることができますか? ディレクトリ内のすべてのファイルのハッシュを生成するスクリプトを Bash で作成しようとしています.2 つの重複したハッシュがある場合、画像の 1 つだけが宛先ディレクトリにコピーされます。ここ?

md5sum を使用する必要があるため、残念ながら他の sha1 や fdupes などはありません。

4

1 に答える 1