isso deve ser feito
for i in *; do
TESTRESULT=$(file --mime-type -b "$i");
if [ "$TESTRESULT" == "image/jpeg" ]; then
echo "$i";
fi;
done
Se isso imprimir os arquivos desejados, substitua echo "$i"
por rm "$i"
Desejo remover todas as fotos de uma pasta e manter os arquivos restantes. Pesquisei na web e encontrei uma tonelada de soluções como:
find . -type f -name "*.jpg" -delete
Todas as fotos são jpeg, sim, mas o principal problema é que os nomes das fotos não terminam com a extensão ".jpg".
Alguém poderia me ajudar?
isso deve ser feito
for i in *; do
TESTRESULT=$(file --mime-type -b "$i");
if [ "$TESTRESULT" == "image/jpeg" ]; then
echo "$i";
fi;
done
Se isso imprimir os arquivos desejados, substitua echo "$i"
por rm "$i"
Aqui está um script para remover todas as imagens:
userX@ubuntu:~$ cat removeImages.sh
#!/bin/bash
path=/home/userX/Downloads/*;
for file in $path
do
fileInfo='file "$file" |awk -F: '{print }''
if [[ $fileInfo =~ .*image.* ]]; then echo "Removing: " $file; rm $file; fi
done
Você usa a segunda parte do arquivo file "$file"
output e procura a palavra-chave image
e, em seguida, remove o arquivo atual no loop.
Se você também quiser remover bitmaps:
userX@ubuntu:~$ cat removeImages.sh
#!/bin/bash
path=/home/userX/Downloads/*;
for file in $path
do
fileInfo='file "$file" |awk -F: '{print }''
if [[ $fileInfo =~ .*image.*]] || [[$fileInfo =~ .*bitmap.* ]];
then echo "Removing: " $file; rm $file; fi
done
Ok, encontrei uma solução:
Tente este comando
find . -name "*.jpg" -delete
Eu tentei isso no Xubuntu 14.04 e funcionou bem. Espero que isso ajude!
Eu sei que isso é semelhante ao seu exemplo, mas o exemplo que você deu não funcionou para mim. Mas este é um forro mais simples.