Cartão SD Automounting quando inserido no Ubuntu

0

Estou tentando escrever um script BASH que auto-monta um cartão SD depois que ele é inserido no leitor de cartões, depois move todas as fotos para uma pasta no HDD e renomeia cada arquivo para a data e hora em que a foto foi tirada.

Alguma idéia de como conseguir isso? Estou usando o Ubuntu 12.04 sem GUI Obrigado :)

    
por Khalid 15.11.2012 / 16:58

2 respostas

1

Apenas para fornecer uma resposta completa para você:

Montar automaticamente e copiar dados

Modo avançado (como você deve fazer isso)

Você vai querer usar as regras do UDEV específicas do UUID do seu dispositivo (com o meu tipo de udid acima).

Lazy Way (como você pode fazer isso)

Execute um Trabalho CRON para executar seu script em um intervalo especificado. Você obviamente precisaria do script para verificar se o SD está conectado e / ou montado antes de executar o restante).

Renomear / mover

Para obter dados EXIF

$ identify -verbose imageFile.jpg

Isso gera muitos recursos, então vamos supor que você queira a data de criação a partir disso - vamos filtrar isso:

$ identify -verbose imageFile.jpg | awk '/exif:/' (or grep exif)

Atualização:

OP solicitou outro método nos comentários:

Você está pedindo para aninhar pastas. Por exemplo, 20 de novembro de 2012 seria ~ / 2012/11/20 / *. jpg's

Aqui está o script que eu fiz para tentar isso, ele funciona com o EXIF agora (os itens iniciais para você foram baseados na data de criação, que estaria flutuando conforme você move ou copia o arquivo). Ele está hospedado no meu site em branco e eu postarei uma captura de tela também (já que é um grande esforço para formatá-la aqui). imageByEXIF.sh

Eu recomendaria que você testasse isso em uma escala limitada antes de implementá-lo. Eu coloquei Args da linha de comando para testes, então eu estava fazendo ~ / Pictures to ~ / Documents (embora prefira o caminho completo)

    
por 15.11.2012 / 18:02
2

Aqui está sua resposta para o poderoso gatilho do ubuntu: link

Basta digitar um script para mover fotos. Como:

#!/bin/bash
#
# destination file like ../20121115-174656-originalname

source=/mnt/sdcard/
destination=/home/youraccount/foto/

cd $source

for i in 'find . -maxdepth 1 -type f -printf "%f\n"'; do

iinfo='stat -c%y $i | cut -c1-19'
idate='date --date="$iinfo" +%Y%m%d-%H%M%S-'

echo mv $i $destination$idate$i

done
    
por 15.11.2012 / 18:07