web-dev-qa-db-ja.com

MD5に基づいてファイルを検索し、削除します

フォルダに散在している名前の異なる同じファイルを削除したい。このコマンドは、ファイルの検索と一覧表示に適しています。次に、手動でファイルを削除します。

以下のコマンドに削除オプションを追加することはできますか?

find /folder -type f -exec md5sum {} + | grep '^aafa26a6610d357d8e42f44bc7e76635'
2
Dhillon

試してみてください

find ... | awk '{$1 = "rm" ; print } ' | bash

これにより、実際のmd5sum(aaf...)がrmに置き換えられます。

これは、ファイル名に特殊文字が含まれている場合や、ファイルが書き込み保護されている場合(rmrm -fに置き換えます)には機能しません。

3
Archemar

別の可能性は以下のとおりです。必要に応じて、rmrm -fに置き換えます。また、-n1xargsに追加して(rmを削除)、渡された引数を出力させます(検証目的で)。

find . -type f -exec md5sum {} + | awk '$1 == "d41d8cd98f00b204e9800998ecf8427e" {printf "%s\0", substr($0, 35)}' | xargs -r0 rm

この方法に注意してくださいdoesファイル名やフォルダのスペースを処理します。

1
parkamark