Usando “mv” ou “idem” para mesclar pastas no OS X

Usando “mv” ou “idem” para mesclar pastas no OS X

Acostumado com o modo de fazer do Windows, acabei de descobrir que o OS X não tem função de mesclagem – mover significa substituir a pasta. Embora isso faça sentido, sinto falta da fusão!


Eu tenho dois diretórios Wordpress, 1 contém a fonte padrão e 2 contém a versão trabalhada com tema personalizado de plugins, etc.

Quero ver a diferença entre esses dois, então estou colocando no SVN. A pasta 1 já está ativa, agora, em teoria, eu deveria simplesmente mesclar o conteúdo de 2 com 1, substituindo tudo pelo conteúdo de 2, mas deixando os arquivos SVN ocultos intactos.

Infelizmente o OS X, ao mover, substitui a pasta para que meu cliente SVN enlouqueça e não entenda mais a estrutura de pastas.

Então, acredito que minhas opções sejam mve ditto, mas qual você usaria na minha situação e como?

sudo mv wordpress /Documents/svn/wwwholiday/trunk/wordpress

Quero mvsobrescrever tudo o que encontrar, mas deixar de lado o que já está dentro da pasta 1 e não tem duplicatas na pasta 2.

Responder1

A maneira mais fácil de mesclar pastas de uma maneira, por exemplo

Mesclar tudo da pasta 1 → pasta 2

seria usar rsync.

rsync -avh folder1/* folder2/

Isso vai:

  • mova todos os arquivos que existem apenas na pasta 1 e seus subdiretórios para a pasta 2
  • nãosobrescreva qualquer coisa na pasta 2 se já estiver lá
  • substituir arquivos que foram alterados,a menos quevocê adiciona a --ignore-existingopção
  • não exclua nada da pasta 2,a menos quevocê adiciona a --deleteopção

Sinta-se à vontade para adaptar isso à sua situação (onde folder1e folder2ao contrário, eu acho).

Você pode tentar ver o que o comando faz chamando:

rsync -avh --dry-run folder1/ folder2/

O dry-runswitch mostra o que ele faz.


Não esqueça que as barras invertidas têm um significado especial, pois folder2/o destino não é o mesmo que folder2. Verifique a página de manual rsyncpara uso e mais opções.

Também é recomendado -P(de acordo com --help, same as --partial --progress) que adiciona show progress during transfere keep partially transferred files(que é útil para novas tentativas se houver falha).

Responder2

Você pode fazer isso como @slhck diz ou também pode usar cp.

$sudo cp -R wordpress/ /Documents/svn/wwwholiday/trunk/wordpress

informação relacionada