Obtener archivos en copia remota pero no local

Obtener archivos en copia remota pero no local

Tengo una carpeta.

Tengo una copia de esta carpeta localmente y otra en un servidor. Edité mi carpeta local como quería y luegosincronizaciónal servidor.

¿Hay alguna forma de comparar esas dos copias, local y remota, y obtener una lista de archivos que están en la remota y no en la local?

Respuesta1

El siguiente comando rsync ejecutado en la máquina local enumera los archivos que existen en el host remoto pero no en el host local.

rsync -av --dry-run --delete somedir/ user@remote:~/somedir/

El --dry-runconmutador solo enumera los archivos, sin hacer realmente nada, el --deleteconmutador en combinación con -v(detallado) enumera los archivos que se eliminarían porque existen en el host remoto, pero no en el host local, que es lo que desea.

Respuesta2

Sincronizador de archivos al unísonohace exactamente eso usando el algoritmo rsync para el trabajo pesado. Lo uso a diario.

Respuesta3

Si ya tiene claves ssh para realizar su rsync, puede emitir un comando ssh remoto y enumerar los archivos en el directorio, luego diferenciarlo con una copia de su directorio 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 adicional, canalice la salida de diff adiferencia de colorpor la belleza.

información relacionada