“sync” content via nome do arquivo

2

Ok, bem, enviei 5 GB de imagens para o Dropbox, e elas estão diretamente fora da câmera.

Em outro país, meu amigo com internet lixo (que recuperou um CD contendo as imagens) copiou as imagens para uma pasta em sua área de trabalho e começou a classificar as imagens; isto é, deletar imagens ruins / desnecessárias. Não posso pedir-lhe para carregar 5gigs para a minha conta de caixa de depósito pessoal, quando demorei uma semana a carregar com a minha internet mais rápida.

Existe um software que eu posso rodar em seu PC com o Windows 8 para obter uma lista de nomes de arquivos (diretório recursivo, já que eu dei a ele para ele classificado em pastas individuais para cada evento); que, quando executado novamente no meu MacBook do Snow Leopard, seria capaz de ver quais imagens foram deletadas no computador do meu amigo; e, em seguida, excluí-los do meu lado.

Se esse programa não existir, que framework eu posso usar para programar isso (estou desenvolvendo em um Mac)? E quais dicas você daria para mim?

    
por qaisjp 18.02.2013 / 00:06

2 respostas

1

Esta resposta toma emprestado liberalmente de alguns comentários. Mande seu amigo correr

dir /b/s/a-d > dir.out

Você corre

find . -print > find.out

Normalize dir.out e find.out :

  • Torne os finais de linha uniformes (por exemplo, NL ou CRLF),
  • Remover prefixos comuns ( C:\Users\… e ./ ),
  • Altere as barras invertidas ( \ ) para barras ( / ) em dir.out e
  • Classifique os dois arquivos.

Agora faça

comm dir.out find.out

(Você pode querer canalizar isso em um pager como more ou less .) A saída consistirá em três colunas:

  1. Entradas (nomes de arquivos) presentes apenas no primeiro arquivo ( dir.out ). Não deveria haver nenhum; se houver, seu amigo incluiu um arquivo que ele não recebeu de você ou você não normalizou completamente os arquivos. (OK, dependendo exatamente como seu amigo fez o comando dir , o arquivo dir.out em si pode aparecer na coluna 1.)
  2. Entradas presentes apenas no segundo arquivo ( find.out ). Estes são os nomes dos arquivos que você tem em seu sistema, mas que seu amigo não listou. Em outras palavras, esses são os arquivos que você deseja excluir.
  3. Entradas presentes nos dois arquivos. Isso deve ser o mesmo que dir.out .

Se houver falsos negativos devido a diferenças entre maiúsculas e minúsculas ("A" a a "), tente o comando comm novamente com uma opção -f . Você provavelmente repetirá a opção sort com -f .

Agora , digite comm -13 dir.out find.out . Esta sintaxe incrivelmente danificada pelo cérebro significa "Me dê toda a saída normal, exceto para as colunas 1 e 3", em outras palavras, apenas a coluna de saída 2. Como indicado acima, esta é a lista de arquivos que você deseja excluir, então canalize-o em xargs rm ou algo parecido.

Estou assumindo que você não tem personagens malucos (como espaço, aspas, "*", "?", "<", "|", etc.) nos seus nomes de arquivo. (Isso não deve ser um problema; as câmeras tendem a usar nomes de arquivo como "DSCN1234.JPG".)

    
por 20.02.2013 / 22:32
0

Você pode conseguir isso com GoodSync Connect (não afiliado). Custa usar esse recurso, mas há uma avaliação de 30 dias durante a qual ele funciona na versão gratuita.

  1. Você instala o GoodSync nos dois lados (há Mac, Windows e Linux versões).
  2. Você configura o GoodSync Connect, que estabelece um link direto onde informações sobre os diretórios são transferidas via mediador, mas não os arquivos em si.
  3. Do seu lado, você configura um trabalho de sincronização.
  4. Selecione a pasta do Dropbox com as imagens.
  5. Seu amigo copia os arquivos do DVD para um diretório. Selecione esta pasta através do GoodSync Connect.
  6. Você seleciona a opção Analisar no trabalho de sincronização. GS agora estabelece que ambas as pastas são as mesmas. Isso cria um arquivo de comparação de referência nos dois lados. (Importante!)
  7. Então o seu amigo apaga as fotos que ele não quer. (Ou, se ele já fez isso, ele exclui o conteúdo da pasta onde ele armazenou todas as imagens - exceto a pasta _gsdata. Ele coloca as pastas modificadas lá.)
  8. Executar análise, que mostrará uma prévia.
  9. Se você está OK, sincronize. O GoodSync fará sua mágica.

Notas:

  • O GoodSync detecta movimentos de arquivos e pastas e renomeia, e deve funcionar sem um soluço. Por isso, não tentará mover arquivos. (A menos que o conteúdo do arquivo tenha sido modificado. Mas é por isso que você analisa primeiro!)
  • O GoodSync excluirá os arquivos que seu amigo excluiu. Eles estarão na lixeira.
  • Ah, e faça um backup antes disso. Sim seriamente. Ou tente localmente.
  • E se você não confiar em seu amigo, desative o servidor GoodSync Connect depois de terminar. Caso contrário, seu amigo verá todos os seus arquivos. (Provavelmente há uma maneira de contornar isso, mas ainda não o encontrei.)
por 20.02.2013 / 23:05