Ignorando arquivos .DS_Store ao copiar entre duas unidades externas

11

Já existem algumas perguntas sobre os .DS_Storearquivos, mas nenhuma parece responder ao meu problema.

Eu tenho um disco rígido externo com uma dúzia de pastas de backup de ~ 50 GB. Quando tento copiar essas pastas para um novo disco rígido externo arrastando e soltando, ele falha porque

.DS_Store já existe e não pôde ser copiado.
[Pare]

Para contornar esse problema, como posso ignorar a cópia de arquivos .DS_Store ao copiar entre dois discos rígidos?

Certamente existe uma solução de comando do Terminal, mas eu não sou versado o suficiente cppara encontrá-la. Toda a ajuda apreciada!

PS Ambos os discos são Mac OS X Extended (Diário).

Pe.
fonte
Você está copiando para um diretório existente? Presumo caso contrário não haveria um arquivo .DS_Store o alvo, mas neste caso você está substituindo quaisquer outros arquivos
user151019
Estou copiando diretamente para a raiz do disco, não para um diretório existente e não há arquivos existentes no destino, portanto, não há substituição.
pe.
As mensagens de erro informam que há um arquivo .DS_Store no destino - o que é ls -alexibido no destino?
user151019
ls- alnão mostra nada de particular: presumo que seja um problema de arquivo corrompido (os .DS_Storearquivos estão causando problemas há algum tempo).
pe.
1
No entanto rsync é muitas vezes a melhor maneira de qualquer maneira
user151019

Respostas:

20

Tente rsync -rv --exclude=.DS_Store <source> <destination>do terminal.

por exemplo

rsync -rv --exclude=.DS_Store ~/Documents /Volumes/Backup/Documents

vai fazer:

  • (-r) recursivo (copie tudo abaixo de ~ / Documents)
  • (-v) detalhado (diga o que está fazendo)
  • (- excluir) excluindo qualquer arquivo chamado .DS_Store
  • de ~/Documents
  • para /Volumes/Backup/Documents

rsyncé como um cpcomando suprido com muito mais opções, mais especificamente--exclude

hoss
fonte
Era exatamente isso que eu procurava, obrigado!
pe.