Como encontro arquivos corrompidos?

3

Eu tenho muitos arquivos zip. Alguns não são baixados corretamente e estão corrompidos. Eu quero removê-los.

Existe uma maneira de encontrar os arquivos corrompidos no bash?

    
por Omid 12.11.2012 / 16:08

2 respostas

4

Com o GNU (para -readable e -iname ), ache:

find . -iname '*.zip' -type f -readable ! -exec unzip -t {} \; -exec rm -i {} \;
    
por 12.11.2012 / 16:28
1

O seguinte imprimirá o nome de todos os arquivos zip corrompidos no diretório atual e em seus subdiretórios:

#!/bin/bash
shopt -s dotglob nullglob globstar
for file in ./**/*.zip; do
    [[ -r $file ]] || continue
    unzip -t "$file" >/dev/null 2>&1 || printf '%s\n' "$file"
done

Se você deseja removê-los, basta substituir printf '%s\n' "$file" por rm -f "$file" .

    
por 12.11.2012 / 16:12

Tags