
Eu tenho uma pasta.
Eu tenho uma cópia desta pasta localmente e outra em um servidor. Editei minha pasta local como queria e depoissincronizar novamentepara o servidor.
Existe alguma maneira de comparar essas duas cópias, local e remota, e recuperar uma lista de arquivos que estão na remota e não na local?
Responder1
O seguinte comando rsync executado na máquina local lista os arquivos que existem no host remoto, mas não no host local.
rsync -av --dry-run --delete somedir/ user@remote:~/somedir/
A --dry-run
opção lista apenas os arquivos, sem realmente fazer nada, a --delete
opção em combinação com -v
(detalhado) lista os arquivos que seriam excluídos porque existem no host remoto, mas não no host local, o que você deseja.
Responder2
Sincronizador de arquivos Unisonfaz exatamente isso usando o algoritmo rsync para o trabalho pesado. Eu uso diariamente.
Responder3
Se você já possui chaves ssh para executar o rsync, poderá emitir um comando ssh remoto e listar os arquivos no diretório e, em seguida, diferenciá-lo com uma cópia do diretório local.
ssh [email protected] ls -1 ~/foo > /tmp/remote.txt && ls -1 ~/foo > /tmp/local.txt && diff /tmp/remote.txt /tmp/local.txt
Crédito extra, canalize a saída do diff paradiferença de corpor beleza.