Aqui está um comando que deve alcançar o que você deseja:
for f in test1/*; do find test2 -name $(basename $f) -size $(stat -c %s $f)c -delete; done
Explicação:
-
for f in test1/*
: faz um loop sobre cada arquivo no test1 -
$(basename $f)
: Retorna o nome base do arquivo passado pelo loop -
$(stat -c %s $f)
: Retorna o tamanho do arquivo passado pelo loop - O
c
no final do blocostat
é para que a saída seja lida como bytes porfind
-
find test2 -name $(basename $f) -size $(stat -c %s $f)c -delete
: encontre arquivos correspondentes e exclua-os com-delete
Para uma execução a seco, omita o sinalizador -delete
.
Nota: Isso não funcionará no MacOS porque o comando stat
interno não suporta o -c
sinalizador. Em vez disso, instale a versão do gnu do stat.