
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-run
conmutador solo enumera los archivos, sin hacer realmente nada, el --delete
conmutador 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.