Como verificar o tipo de arquivo em um script

3

Eu quero fazer um loop para todas as imagens em um diretório. As imagens não têm extensão, então tenho que ler os primeiros bytes da imagem para saber seu tipo. O loop deve ser algo como.

for file in *
do
    if [ file --mime-type -b ]
    then
        ***
    fi
done
    
por Arturo 27.12.2014 / 18:54

1 resposta

4

Usando a instrução case e a substituição do comando :

for file in *; do
    case $(file --mime-type -b "$file") in
        image/*g)        ... ;;
        text/plain)      ... ;;
        application/xml) ... ;;
        application/zip) ... ;;
        *)               ... ;;
    esac
done

Verifique:
link
link
link
link

EDITAR

se você insistir em não usar case , mas uma instrução if usando :

if [[ $(file --mime-type -b "$file") == image/*g ]]; then
...
else
...
fi 
    
por 27.12.2014 / 18:58