りむーばぶる

今回はlogchの画像の最適化とか考えようって話

虹裏は重複画像が多目なので重複分はハードリンクしてしまえば
1/4 近くは削れたりする

問題は重複のチェック処理をどうするかって事で
そのまま比較するとどれだけ時間があっても足りない

以前自前PCでやった時はどうやったかというと
各ファイルのsha256値一覧をを計算しテキストファイルに格納し
それの重複をチェックするという手を取っていた
重複するならハードリンクする形になる

そういうプログラムをmono(C#クローン)で作って動かしていたんだけど

今回借りたサーバーにはmonoが無いため移植しなきゃいけなくて
さらに削除を考えてない作りなのでそのあたりも考える必要がある

とりあえずシェルスクリプトでソレらしいものを作ってみる

ハッシュ値一覧を作るだけ

find . -type f | while read line
do
  sha256sum $line
done >> hashlist.txt

重複を削除

mv hashlist.txt hashlist.txt.old
cat hashlist.txt.old | sort | uniq > hashlist.txt

ハッシュ値は結構簡単に取り出せるから良いんだけど
他の作業は結構めんどっちい

他に何があるかというと

・ファイルが削除された場合の掃除
・重複ファイルの検出とマージ

とかとか
シェルスクリプトだけだと速度に難が出まくりそうなので
他の言語使わないとなぁ