GNU/Linux >> Tutoriales Linux >  >> Linux

RSYNC no elimina los directorios de origen

La página de manual incluso dice:

--remove-source-files   sender removes synchronized files (non-dirs)

Si desea eliminar directorios vacíos en su fuente, si aún quedan archivos, haga lo siguiente:

find . -depth -type d -empty -delete

Si es solo un directorio fuente vacío, un rmdir <directory> por supuesto será suficiente.


El comportamiento de --remove-source-files que observas es exactamente lo especificado por man rsync :

--remove-source-files

   This tells rsync to remove from the sending side the files (meaning non-directories) that are a part of the transfer and have been successfully duplicated on the receiving side.

No hay un comando específico para eliminar los directorios, como muestran claramente estas dos discusiones en StackExchange y ServerFault. La solución sugerida allí es emitir dos comandos separados:

 rsync -av --ignore-existing --remove-source-files source/ destination/ && \
 rsync -av --delete `mktemp -d`/ source/ 

La última parte del comando sugerido en estas dos publicaciones,

 rmdir source/

que se necesita para eliminar el directorio de origen (ahora vacío) tiene este formulario en estas publicaciones porque los OP y las respuestas usan rsync para mover grandes cantidades de archivos dentro de la misma máquina. En tu caso tendrás que hacerlo manualmente.


Usando "rm -rf " tiene una condición de carrera inherente, podría eliminar archivos que se acaban de crear entre rsync y la firma invocaciones.

Prefiero usar:

rsync --remove-source-files -a servidor:entrante/ entrante/ &&

sshserver encuentra entrante -escriba d -elimine

Esto NO eliminará los directorios si no están vacíos.


Linux
  1. ¿Compara directorios pero no contenido de archivos?

  2. ¿Por qué no funciona el autocompletado cuando se escribe un nombre de comando después de `fuente`?

  3. ¿Por qué `exit &` no funciona?

  4. Linux:¿por qué Rsync en Linux no conserva todas las marcas de tiempo (hora de creación)?

  5. archivar (ubuntu tar) directorios ocultos

Cómo excluir archivos y directorios con Rsync

Cómo quitar (eliminar) directorio en Linux

Cómo encontrar y eliminar directorios vacíos en Linux

La red inalámbrica no se vuelve a conectar automáticamente en KDE

Comando fuente no encontrado

advenedizo no ve mi trabajo