Linux環境では、ファイルのmd5で重複した画像を削除する必要がありますが、削除する前に、ファイルにいくつかのCSVリストを書きたいです
削除されたファイル -> リンクされた最初のファイル 削除されたファイル -> リンクされたファイル
等。
問題は、私がの構造を持っていることです
メインフォルダー サブフォルダー サブサブフォルダー サブサブサブフォルダー
画像
200.000 以上のファイル
したがって、スクリプトはハングせず、高速であることが非常に優れているはずです。
どの方向を提案しますか?
私は手元にubuntuを持っています。
アップデート:
必要なものを少し変更するだけで実行できるスクリプトを見つけました。md5 の重複を検索して見つけ、重複を削除します。必要な最後のステップは、削除されたファイルのリストを含むファイルを作成することです->残っている複製
#!/bin/bash
DIR="/home/gevork/Desktop/webserver/maps.am/all_tiles/dubai_test"
find $DIR -type f -exec md5sum {} \; | sort > /home/gevork/Desktop/webserver/maps.am/all_tiles/dubai_test/sums-sorted.txt
OLDSUM=""
IFS=$'\n'
for i in `cat /home/gevork/Desktop/webserver/maps.am/all_tiles/dubai_test/sums-sorted.txt`; do
NEWSUM=`echo "$i" | sed 's/ .*//'`
NEWFILE=`echo "$i" | sed 's/^[^ ]* *//'`
if [ "$OLDSUM" == "$NEWSUM" ]; then
echo rm "$NEWFILE"
else
OLDSUM="$NEWSUM"
OLDFILE="$NEWFILE"
fi
done