Obtenha arquivos em cópia remota, mas não local

Obtenha arquivos em cópia remota, mas não local

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-runopção lista apenas os arquivos, sem realmente fazer nada, a --deleteopçã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.

informação relacionada