Understanding rsync --delete behavior

Richard Zinar zinarr at gmail.com
Sun Jun 17 18:55:17 MDT 2012


Hi,

When running an rsync command of the form:

$ rsync -avn --delete remotehost:/mnt/volsw_dev/AS5/  /mnt/volsw_dev/AS5

rsync wants to delete a slew of files and directories.  Partial output
includes, for example:


deleting AS5/zeromq/2.2.0/share/man/man7/zmq_tcp.7
deleting AS5/zeromq/2.2.0/share/man/man7/zmq_pgm.7
deleting AS5/zeromq/2.2.0/share/man/man7/zmq_ipc.7
deleting AS5/zeromq/2.2.0/share/man/man7/zmq_inproc.7
deleting AS5/zeromq/2.2.0/share/man/man7/zmq_epgm.7
deleting AS5/zeromq/2.2.0/share/man/man7/zmq_cpp.7
deleting AS5/zeromq/2.2.0/share/man/man7/zmq.7
deleting AS5/zeromq/2.2.0/share/man/man7/
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_version.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_term.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_strerror.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_socket.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_setsockopt.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_send.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_recv.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_poll.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_msg_size.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_msg_move.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_msg_init_size.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_msg_init_data.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_msg_init.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_msg_data.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_msg_copy.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_msg_close.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_init.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_getsockopt.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_errno.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_device.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_connect.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_close.3
deleting AS5/zeromq/2.2.0/share/man/man3/zmq_bind.3
deleting AS5/zeromq/2.2.0/share/man/man3/
deleting AS5/zeromq/2.2.0/share/man/
deleting AS5/zeromq/2.2.0/share/
deleting AS5/zeromq/2.2.0/lib/pkgconfig/libzmq.pc
deleting AS5/zeromq/2.2.0/lib/pkgconfig/
deleting AS5/zeromq/2.2.0/lib/libzmq.so.1.0.1
deleting AS5/zeromq/2.2.0/lib/libzmq.so.1
deleting AS5/zeromq/2.2.0/lib/libzmq.so
deleting AS5/zeromq/2.2.0/lib/libzmq.la
deleting AS5/zeromq/2.2.0/lib/libzmq.a
deleting AS5/zeromq/2.2.0/lib/
deleting AS5/zeromq/2.2.0/include/zmq_utils.h
deleting AS5/zeromq/2.2.0/include/zmq.hpp
deleting AS5/zeromq/2.2.0/include/zmq.h
deleting AS5/zeromq/2.2.0/include/
deleting AS5/zeromq/2.2.0/
deleting AS5/zeromq/


However, if I run command:

$ rsync -avn --delete remotehost:/mnt/volsw_dev/AS5/zeromq/
/mnt/volsw_dev/AS5/zeromq

There are no changes reported (which is what I expected).

Why does doing the rsync one level up (without zeromq) cause rsync to
indicate the local zeromq directory should be deleted, but adding the
zeromq directory to the source and destination path make rsync work as
I expect?

I'm sure I'm missing something basic in the way --delete works, but if
someone can explain, I'd appreciate it.  This is rsync 3.0.6 (on both
the local and remote server).

Thanks,

Richard


More information about the rsync mailing list