Aqui está uma solução de trabalho, mas provavelmente não é a mais simples. O LifeHacker publicou recentemente um artigo descrevendo um programa que faz o seu iPhone aparecer como um disco montado normal no Finder: link O programa em pergunta pode ser encontrada aqui: link e no momento os autores estão dando de graça, o que é legal deles. Eu tentei isso usando meu iPhone 3GS sem cadeia e posso navegar com sucesso por arquivos no meu iPhone usando o Finder, incluindo minhas imagens & filmes (embora alguns arquivos do sistema permaneçam ocultos porque meu telefone não está quebrado). Imagens e amp; os filmes são armazenados na pasta familiar DCIM no iPhone.
O próximo passo é automatizar o processo de cópia para que você copie apenas novos arquivos. Embora ao contrário dos cartões de memória formatados em FAT32, onde (na minha experiência) o bit de arquivamento é definido nos arquivos que foram arquivos / fotos baixados anteriormente, não parece haver a capacidade de ler ou definir um sinalizador equivalente no iPhone montado disco. Eu não sei se isso é uma limitação do programa ou do formato do disco do próprio telefone (eu estou supondo que o programa).
Portanto, minha sugestão é usar um script bash que salve o arquivo de zero bytes no telefone em que o registro de data e hora do arquivo indica quando as fotos foram sincronizadas pela última vez. Este arquivo pode então ser usado com o comando padrão 'find' do terminal para copiar somente arquivos mais novos que este arquivo. Abaixo está um exemplo de script bash que eu escrevi para esse propósito & funciona para mim. Salve o script como um arquivo em seu diretório pessoal, digamos chamado "photoSync.sh". Em seguida (com o iphone montado) de uma janela de terminal, altere o diretório atual para o diretório raiz do iPhone e, em seguida, execute o script, fornecendo o diretório de destino como o primeiro argumento para o script. Por exemplo,
cd /Volumes/MyIPhone\(Media\)/
sh ~/photoSync.sh ~/Pictures/iPhonePics
Aqui está o script:
#!/bin/bash
#test that script has been called correctly & from the right place
if [ ! -n "$1" ]
then
echo "Usage: $0 <destination dir>"
exit 1
fi
if [ ! -d $1 ]
then
echo "Destination directory does not exist or is not a directory"
exit 1
fi
if [ ! -d "DCIM" ]
then
echo "Current directory does not contain a DCIM folder. Script should be executed from mount directory of iPhone"
exit 1
fi
#tests passed, let's do the copying…
#check for last sync file…
if [ -e "com.jn.lastsynctime" ]
then
#we've synced before, just grab newer files
echo "Copying only files since last sync..."
find ./DCIM/* \( -name "*.JPG" -or -name "*.MOV" -or -name "*.PNG" \) -type f -newer com.jn.lastsynctime -exec cp -np {} $1 \; -print
#reset sync file
rm com.jn.lastsynctime
touch com.jn.lastsynctime
echo "Done"
else
#no sync file so copy all and set sync file
echo "No previous sync marker found, copying all files…"
find ./DCIM/* \( -name "*.JPG" -or -name "*.MOV" -or -name "*.PNG" \) -type f -exec cp -np {} $1 \; -print
touch com.jn.lastsynctime
echo "Done"
fi
exit 0