Enviado em 08/08/2017 - 22:20h
Olá. Estou começando a aprender Shell Scripts agora, queria saber se tem algum comando para usar como complemento do IF e FI, que peça para verificar o formato do arquivo.#!/bin/bash echo teste iniciado If [ = .jpg] then mv /home/eu/teste.jpg /home/eu/imagens else echo qualquer coisa exit fi
Enviado em 08/08/2017 - 22:28h
Use o file para isso.$ file Imagens/20.jpg Imagens/20.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 2 ion 8, 1177x794, frames 3 $ file Imagens/20.jpg | grep JPEG || printf "Não existe nenhum arquivo JPEG aqui. \n"
Enviado em 08/08/2017 - 22:30h
vc pode usar fazer um cut sobre o nome do arquivo pegando o conteúdo após o ".", ou usar um comando que valide o tipo do arquivo, que considero mais seguro, um desses comandos é o fileif file matrix-1.jpg | grep image; then echo "move para o diretório de imagens" fi
Enviado em 08/08/2017 - 23:05h
Obrigado! não sabia do file aí.Enviado em 08/08/2017 - 23:05h
Enviado em 09/08/2017 - 10:06h
Apenas uma sugestão (pode ser melhorado!):#!/bin/bash dir=/tmp/Testes find $dir -maxdepth 1 -type f | while read arq do typeset -l ext ext=`echo $arq | rev | cut -d. -f1 | rev` case $ext in txt|pdf) echo "mover $arq para Documentos"; dest=Documentos ; mv $arq $dir/$dest ;; jpg|png) echo "mover $arq para Imagens"; dest=Imagens ; mv $arq $dir/$dest ;; mp3) echo "mover $arq para Músicas"; dest=Músicas ; mv $arq $dir/$dest ;; avi) echo "mover $arq para Vídeos"; dest=Vídeos ; mv $arq $dir/$dest ;; *) echo "mover $arq para Outros"; dest=Outros ; mv $arq $dir/$dest ;; esac done
Enviado em 09/08/2017 - 10:27h
#!/bin/bash dir=/tmp/Testes find $dir -maxdepth 1 -type f | while read arq do ext=`echo $arq | cut -d. -f2` case $ext in txt|pdf) echo "mover para Documentos"; dest=Documentos ; mv $arq $dir/$dest ;; jpg|png) echo "mover para Imagens"; dest=Imagens ; mv $arq $dir/$dest ;; mp3) echo "mover para Músicas"; dest=Músicas ; mv $arq $dir/$dest ;; avi) echo "mover para Vídeos"; dest=Vídeos ; mv $arq $dir/$dest ;; *) echo "mover para Outros"; dest=Outros ; mv $arq $dir/$dest ;; esac done
ext=`echo $arq | cut -d. -f2`
typeset -l ext #convertendo tudo para minúsculo (-l) (-u para maiúsculo) ext=$(echo $f | rev | cut -c 1-3 | rev) #pegando apenas a extensão (os últimos 3 caracteres)
Enviado em 09/08/2017 - 10:30h
complementando a minha última resposta...Enviado em 09/08/2017 - 20:15h
Muito obrigado galera :)Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Será possível instalar Linux Mint LMDE em Sony Vaio? (16)
Como redefinir o diretório Home? (1)
Posso instalar usar o grub sem ter linux instalado, para iniciar o win... (2)
Ocomon 6.0.1 - Problemas ao editar configurações estendidas (6)