Como fazer a pesquisa de linha de comando para downloads duplicados na pasta de downloads?

1

Eu estou olhando para fazer uma busca de linha de comando para downloads duplicados dentro da minha pasta "Downloads".

Digamos que eu baixe o "test.mp3", mas depois baixe-o acidentalmente novamente, o segundo download aparecerá como "test (1) .mp3". Eu quero procurar por qualquer arquivo que tenha "(1)" no final do nome do arquivo, mas antes da extensão do arquivo. Qual seria o comando para fazer isso?

Obrigado pela ajuda!

    
por blockysquirtle 21.04.2017 / 02:58

2 respostas

2

Acho que é isso que você está procurando:

for f in ~/Downloads/*; do
    if [[ $f == *\([1-9]\).* ]]; then
        echo "$f"
    fi
done
  • Editar : @steeldriver apontou que globs podem fazer o acima, então a solução mais simples é esta:

    printf '%s\n' ~/Downloads/*\([1-9]\).*
    

Eu prefiro o Bash simples, mas você poderia fazer isso em uma linha usando find :

find ~/Downloads/ -name '*\([1-9]\).*'
    
por wjandrea 21.04.2017 / 03:28
1

Como alternativa, podemos calcular as somas de verificação e imprimir as duplicadas (isso é independente das convenções de nomes duplicadas por download).

md5sum ~/Download/*.mp3 | awk 'a[]{print  }{ a[]=}'
    
por JJoao 24.04.2017 / 18:44