Quero remover todas as fotos de uma pasta e manter os arquivos restantes. Pesquisei na web e encontrei várias 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 pode ajudar-me?
Responder1
isso deveria fazer
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"
porrm "$i"
Responder2
Ok, encontrei uma solução:
Experimente este comando
find . -name "*.jpg" -delete
Eu tentei isso no Xubuntu 14.04 e funcionou bem. Eu 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.
Responder3
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 $2}'`
if [[ $fileInfo =~ .*image.* ]]; then echo "Removing: " $file; rm $file; fi
done
Você usa a segunda parte da file "$file"
saída do arquivo e procura image
a palavra-chave nela e, em seguida, remove o arquivo atual no loop.
Se você também deseja remover bitmaps:
userX@ubuntu:~$ cat removeImages.sh
#!/bin/bash
path=/home/userX/Downloads/*;
for file in $path
do
fileInfo=`file "$file" |awk -F: '{print $2}'`
if [[ $fileInfo =~ .*image.*]] || [[$fileInfo =~ .*bitmap.* ]];
then echo "Removing: " $file; rm $file; fi
done