同じディレクトリの重複ファイルを比較し、一緒にハードリンクする方法

同じディレクトリの重複ファイルを比較し、一緒にハードリンクする方法

特定のディレクトリで見つかった重複ファイルを表す変数があります。

ddub=`find $1* -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | xargs -I{} find -type f -size {}c -print0 `

次にディレクトリを繰り返して、元のファイルと重複したハードリンクを比較します。

echo $ddub                              #Print the results

for i in $ddub; do
    for j in $ddub ; do
    if cmp -s "$i" "j" ; then
         ln $i $j
    elif ; 
         echo "csnt hardlink the files"
    fi

ここでの問題は、リスト内のすべてのファイルをハードリンクしようとしますが、必要に応じて機能しないことです。一意のファイルを残りのファイルから切り離してからハードリンクしたいと思います。

リストで見つかった同様のMD5sumファイルまたは同じサイズのファイルのみをハードリンクするように追加のループを実行するにはどうすればよいですか?

私が得た結果は以下の通りです。これは私が作成したすべてのファイルのリストです。これらをさらに分離する方法を理解するのに役立ちます。 (私はちょうどランダムなファイルを生成しました。)

ln ./test_dir/test_dir2/29.JPG.copy.copy.copy.copy./test_dir/test_dir2/29.JPG.copy.copy.copy./test_dir/test_dir2/29.JPG.copy.copy.copy.copy.copy./test_dir/29.JPG./test_dir/29.JPG.copy./test_dir/29.JPG.copy.copy./test_dir/test_dir2/23.JPG.copy.copy.copy.copy./test_dir/test_dir2/23.JPG.copy.copy.copy.copy.copy./test_dir/09.JPG.copy./test_dir/09.JPG./test_dir/09.JPG.copy.copy./test_dir/39.JPG./test_dir/39.JPG.copy./test_dir/test_dir2/22.JPG.copy.copy.copy.copy./test_dir/test_dir2/22.JPG.copy.copy.copy.copy.copy./test_dir/test_dir2/22.JPG.copy.copy.copy./test_dir/22.JPG./test_dir/22.JPG.copy.copy./test_dir/22.JPG.copy ./test_dir/test_dir2/29.JPG.copy.copy.copy.copy./test_dir/test_dir2/29.JPG.copy.copy.copy./test_dir/test_dir2/29.JPG.copy.copy.copy.copy.copy./test_dir/29.JPG./test_dir/29.JPG.copy./test_dir/29.JPG.copy.copy./test_dir/test_dir2/23.JPG.copy.copy.copy.copy./test_dir/test_dir2/23.JPG.copy.copy.copy.copy.copy./test_dir/09.JPG.copy./test_dir/09.JPG./test_dir/09.JPG.copy.copy./test_dir/39.JPG./test_dir/39.JPG.copy./test_dir/test_dir2/22.JPG.copy.copy.copy.copy./test_dir/test_dir2/22.JPG.copy.copy.copy.copy.copy./test_dir/test_dir2/22.JPG.copy.copy.copy./test_dir/22.JPG./test_dir/22.JPG.copy.copy./test_dir/22.JPG.copy
[asonganyif@ccad2 November_2016]$ vim bashScripass.sh

答え1

[ a = b ]以下を使用してファイルを結合することはできませんcmp

if cmp -s "$i" "$j"; then
# rest as you were

関連情報