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 mv
e ditto
, mas qual você usaria na minha situação e como?
sudo mv wordpress /Documents/svn/wwwholiday/trunk/wordpress
Quero mv
sobrescrever 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-existing
opção - não exclua nada da pasta 2,a menos quevocê adiciona a
--delete
opção
Sinta-se à vontade para adaptar isso à sua situação (onde folder1
e folder2
ao contrário, eu acho).
Você pode tentar ver o que o comando faz chamando:
rsync -avh --dry-run folder1/ folder2/
O dry-run
switch 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 rsync
para uso e mais opções.
Também é recomendado -P
(de acordo com --help
, same as --partial --progress
) que adiciona show progress during transfer
e 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