Encontre arquivos baseados em MD5 e delete

1

Eu quero excluir o mesmo arquivo com nomes diferentes espalhados em pastas. Este comando funciona bem para pesquisar e listar os arquivos. Em seguida, excluo manualmente os arquivos.

É possível adicionar a opção delete ao comando abaixo?

find /folder -type f -exec md5sum {} + | grep '^aafa26a6610d357d8e42f44bc7e76635'
    
por Dhillon 06.09.2017 / 06:49

2 respostas

3

tente

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

isso substituirá o md5sum real ( aaf... ) por rm.

isso não funcionará se o nome do arquivo tiver um caractere especial, nem se o arquivo estiver protegido contra gravação (substitua rm por rm -f ).

    
por 06.09.2017 / 07:17
1

Outra possibilidade está abaixo. Substitua rm por rm -f , se necessário. Além disso, adicione -n1 a xargs (removendo rm ) para imprimir os argumentos passados para ele (para fins de validação).

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

Observe que esse método faz manipular espaços em nomes de arquivos e / ou pastas.

    
por 06.09.2017 / 17:21

Tags