Alguém tem um script que compara duas pastas e...

1. Alguém tem um script que compara duas pastas e...

Denilson Pereira
Denilson-Pereira

(usa Debian)

Enviado em 08/02/2017 - 23:27h

Alguém tem um script que compara duas pastas, deleta os arquivos duplicados deixando apenas os mais recentes, e copia os arquivos faltantes para a outra? Deixando no final as duas com mesmos arquivos.


  


2. Re: Alguém tem um script que compara duas pastas e...

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 08/02/2017 - 23:49h

Se no final é para deixar as duas iguais isso pode lhe ajudar.


#!/bin/bash

rsync -avz --delete /home/linux/A/* /home/linux/B



Ele faz uma cópia incremental e deleta no diretório B o que não estiver no diretório A, deixando sempre o B igual ao A.


3. Re: Alguém tem um script que compara duas pastas e...

Denilson Pereira
Denilson-Pereira

(usa Debian)

Enviado em 09/02/2017 - 00:04h

Williamm escreveu:

Se no final é para deixar as duas iguais isso pode lhe ajudar.


#!/bin/bash

rsync -avz --delete /home/linux/A/* /home/linux/B



Ele faz uma cópia incremental e deleta no diretório B o que não estiver no diretório A, deixando sempre o B igual ao A.


Acontece, que as duas pastas tem arquivos novos além de arquivos modificados.


4. Re: Alguém tem um script que compara duas pastas e...

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/02/2017 - 11:50h

Veja se assim resolve:
rsync -auv pasta-A/ pasta-B/ 

Obs: A sintaxe do comando é rsync -opções origem/ destino/

Isso vai copiar apenas os arquivos mais recentes da origem (pasta-A) e os arquivos que não tem no destino (pasta-B). Os arquivos de B que são mais recentes que A não mudam, assim como os arquivos que só tem em B permanecem!

Se você quer manter a pasta-A com o mesmo conteúdo da pasta-B inverta a ordem das pastas no comando, ou seja:
rsync -auv pasta-B/ pasta-A/ 



5. Re: Alguém tem um script que compara duas pastas e...

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/02/2017 - 16:19h

Legolas-Reis escreveu:

Alguém tem um script que compara duas pastas, deleta os arquivos duplicados deixando apenas os mais recentes, e copia os arquivos faltantes para a outra? Deixando no final as duas com mesmos arquivos.


Leia o manual e o top 2 e 4:

man rsync


6. Re: Alguém tem um script que compara duas pastas e...

Denilson Pereira
Denilson-Pereira

(usa Debian)

Enviado em 11/02/2017 - 11:25h

PauloHAC escreveu:

Veja se assim resolve:
rsync -auv pasta-A/ pasta-B/ 

Obs: A sintaxe do comando é rsync -opções origem/ destino/

Isso vai copiar apenas os arquivos mais recentes da origem (pasta-A) e os arquivos que não tem no destino (pasta-B). Os arquivos de B que são mais recentes que A não mudam, assim como os arquivos que só tem em B permanecem!

Se você quer manter a pasta-A com o mesmo conteúdo da pasta-B inverta a ordem das pastas no comando, ou seja:
rsync -auv pasta-B/ pasta-A/ 


Tá quase o que eu queria, falta só lidar com os arquivos duplicados.


7. Re: Alguém tem um script que compara duas pastas e...

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/02/2017 - 11:36h

Legolas-Reis escreveu:
Tá quase o que eu queria, falta só lidar com os arquivos duplicados.


Dá mais detalhes, se possível com exemplos, pra sabermos exatamente o que vc quer. Pois com os comandos que passei não ficam arquivos duplicados, fica apenas o mais recente.


8. Re: Alguém tem um script que compara duas pastas e...

José da Silva
zenull

(usa Outra)

Enviado em 12/02/2017 - 17:56h

Tá quase o que eu queria, falta só lidar com os arquivos duplicados.


Talvez o programa fdupes te ajude.


9. Re: Alguém tem um script que compara duas pastas e...

Denilson Pereira
Denilson-Pereira

(usa Debian)

Enviado em 16/02/2017 - 14:51h

PauloHAC escreveu:

Legolas-Reis escreveu:
Tá quase o que eu queria, falta só lidar com os arquivos duplicados.


Dá mais detalhes, se possível com exemplos, pra sabermos exatamente o que vc quer. Pois com os comandos que passei não ficam arquivos duplicados, fica apenas o mais recente.


Estou me referindo aos arquivos duplicados que já existiam nas pastas em questão.