同じ内容を含むディレクトリ内のすべてのフォルダを探す

同じ内容を含むディレクトリ内のすべてのフォルダを探す

Ubuntuには、ディレクトリ内の重複フォルダ(つまり同じコンテンツを含むフォルダ)を見つける方法はありますか?重複ファイル(fdupesなど)を見つけるために使用できるいくつかのコマンドラインツールがすでにあると思いますが、重複フォルダを探したいと思います。つまり、含まれているファイルの内容と一致するフォルダを見つけます(ファイル名と他のメタデータは異なる場合があります)。

ベストアンサー1

#!/bin/bash
shopt -s dotglob

for file in "$1"/*; do [[ -f "$file" ]] && d1+=( "$(md5sum < "$file")" ); done
for file in "$2"/*; do [[ -f "$file" ]] && d2+=( "$(md5sum < "$file")" ); done 

[[ "$(sort <<< "${d1[*]}")" == "$(sort <<< "${d2[*]}")" ]] && echo "Same" || echo "Different"

ここで実際に動作する様子を見ることができます:

$ mkdir 1 2
$ ./comparedirs 1 2
Same
$ cat > 1/1 <<< foo
$ cat > 2/1 <<< foo
$ ./comparedirs 1 2
Same
$ cat > 2/1 <<< bar
$ ./comparedirs 1 2
Different

おすすめ記事